好的,我确实遇到了一个奇怪的问题,今天我一直在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);

10-06 13:19