首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不使用已部署的Web服务的wsdl生成的web服务客户端

不使用已部署的Web服务的wsdl生成的web服务客户端
EN

Stack Overflow用户
提问于 2012-06-19 13:54:07
回答 2查看 8.7K关注 0票数 1

我已经使用axis2 java2wsdl实用工具从java类生成了一个WSDL,如下所示;

代码语言:javascript
复制
java2wsdl -o C:\temp -cn com.temenos.webservices.customer.CustomerServiceWS

然后,我在127.0.0.1:8080/axis2/services/CustomerServiceWS?wsdl中的Application (例如jBoss)中部署了相同的web服务,我可以在http:// axis2上浏览wsdl,并通过标准客户端(如SoapUI )调用该服务上的方法。

现在的问题是,当我使用标准的java工具'wsimport‘生成客户机时,通过提供C:\temp (从java2wsdl实用工具生成的WSDL )的WSDL位置,我的客户端无法与部署的Web通信。我使用以下代码访问web服务;

代码语言:javascript
复制
// Initialise WS
CustomerServiceWS service = null;
CustomerServiceWSPortType servicePort = null;
try {
URL wsdlLocation  = new URL("http://127.0.0.1:8080/axis2/services/CustomerServiceWS?wsdl");  
QName serviceName = new QName("http://customer.webservices.temenos.com", "CustomerServiceWS");
service = new CustomerServiceWS(wsdlLocation, serviceName);
servicePort = service.getCustomerServiceWSHttpSoap12Endpoint();
} catch (MalformedURLException murle) {
murle.printStackTrace();
    return;
}

但是,在创建(服务端口)端点时,我会得到以下错误;

代码语言:javascript
复制
Exception in thread "main" javax.xml.ws.WebServiceException: An attempt was made to construct the ServiceDelegate object with an service name that is not valid: {http://customer.webservices.temenos.com}CustomerServiceWS.
    at org.apache.axis2.jaxws.ExceptionFactory.createWebServiceException(ExceptionFactory.java:173)
    at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:70)
    at org.apache.axis2.jaxws.ExceptionFactory.makeWebServiceException(ExceptionFactory.java:118)
    at org.apache.axis2.jaxws.spi.ServiceDelegate.<init>(ServiceDelegate.java:218)
    at org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:59)
    at javax.xml.ws.Service.<init>(Service.java:56)
    at com.temenos.webservices.customer.CustomerServiceWS.<init>(CustomerServiceWS.java:42)
    at com.temenos.services.customer.client.Client.testGetLanguage(Client.java:32)
    at com.temenos.services.customer.client.Client.main(Client.java:21)

我试过很多东西,但似乎什么都不喜欢。我有遗漏什么吗?

谢谢,

--

SJunejo

EN

回答 2

Stack Overflow用户

发布于 2012-06-21 12:10:24

问题是我在lib路径中使用了axis2,因为调用发生在axis2 (Axi2提供者)而不是Java提供程序上。我从类路径中删除了axis2库,它现在似乎运行正常。(虽然我仍然无法通过客户端调用我的web服务)

票数 0
EN

Stack Overflow用户

发布于 2015-04-25 19:42:35

请参阅WSDL文件的描述,并检查targetNamespace以获得在QName()中提供的url。也进口必要的包装。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11102509

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档