好的,我确实遇到了一个奇怪的问题,今天我一直在Google和Yahoo中寻找解决方案将近4个小时。我拼命地寻找解决方案。
public static String [] checkCardAccount(String cardNumber, String cardIssuer, String securityNumber){
URL url = null;
try {
url = new URL("http://localhost:8999/bankcard?wsdl");
} catch (MalformedURLException e) {
e.printStackTrace();
}
QName qname = new QName("http://server.bcard.soap.com/","BankCardImplService");
Service service = Service.create(url,qname);
BankCard bankcard = service.getPort(BankCard.class);
return bankcard.getCardClientData(cardNumber, cardIssuer);
}
上面的代码是我用于访问SOAP服务的客户端,它确实可以在独立的Java应用程序中工作,但是当我将其嵌入到Java Struts应用程序中时,它会在下面显示以下错误
现在我真的看到问题出在目标 namespace ,因为当我更改它时,错误更改为它说有效服务是
{http://bankcard.api.com/}BankCard
我哪里出问题了?此代码可在Java应用程序上独立运行,但不能在我的Java Struts Web应用程序中运行
最佳答案
在实现类的@WebService批注中给EndpointIneterface赋值,如果不给端点接口(interface),则必须在使用getPort方法时提及完全限定的端口名。
service.getPort(“PortQName”,BankCard.class);