[英]Web service (JAX-WS) client in different package
应该看起来像一个愚蠢的问题,但是我有以下问题。 有一个外部Web服务,WSDL可用。 我的任务是从另一个企业应用程序(在WebSphere 8.5中运行)调用它的方法。使用Rational Application Developer,我在应用程序的项目中生成了Web服务客户端类,并指定了应用程序的包,该包与Web服务的包不同。 Web服务的方法返回一个POJO,它是ArrayList的包装器。然后我使用生成的Cals通过以下方式调用Web服务:
package com.mycompany.services.external;
import com.mycompany.services.external.client.SomeCommonService;
import com.mycompany.services.external.client.SomeCommonServiceService;
import com.mycompany.services.external.client.IdsList;
final QName COMMONSERVICE_QNAME = new QName("http://webService.othercompany.com/", "SomeCommonServiceService");
String strUrl = "http://....";
String query = "/universal [@Barcode=\"000111\"]";
URL serviceUrl = new URL(strUrl);
SomeCommonServiceService service=new SomeCommonServiceService(serviceUrl, COMMONSERVICE_QNAME);
SomeCommonService port = service.getSomeCommonServicePort();
IdsList itemsIds = port.getItemsIdsByQuery(query);
结果,调用该方法的最后一行代码导致错误:
[1/17/17 21:55:39:758 MSK] 00000497 SystemErr R CIWEB错误:[admin(未知)@ 10.253.32.24] com.ibm.ecm.util.PluginUtil.invokeService()javax.xml.ws。 WebServiceException:javax.xml.bind.JAXBException:此上下文未知com.mycompany.services.external.client.IdsList
查看生成的package-info.java,可以看到以下映射:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://webService.othercompany.com/")
package com.mycompany.services.external.client;
如果我在生成客户端时保留原始选项(不更改默认程序包),则会出现相同的问题和相同的错误。 但是在这种情况下,如果我将生成的客户端打包到一个单独的JAR中,并将其用作我的WebSphere服务器上应用程序的共享库,那么一切正常! 但这出于某些原因是不可接受的。
有人可以这么高兴地帮助我解决问题吗?
我曾经使用基于WSDL的Web服务:
示例: http : //www.dgii.gov.do/wsMovilDGII/WSMovilDGII.asmx?wsdl
当然使用MAVEN,我使用这个插件
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>3.1.5</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${basedir}/src/main/java/</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>http://www.dgii.gov.do/wsMovilDGII/WSMovilDGII.asmx?wsdl</wsdl>
<packagenames>
<packagename>com.hectorvent.consultadgii</packagename>
</packagenames>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.