应该看起来像一个愚蠢的问题,但我有以下问题。 有一个外部Web服务,WSDL可用。我的任务是从另一个企业应用程序(在WebSphere 8.5上运行)调用它的方法 使用Rational Application Developer,我在应用程序的项目中生成了Web服务客户端类,指定了应用程序的包,它来自Web服务的DIFFERS。 Web服务的方法返回一个POJO,它是ArrayList的包装器。然后我使用生成的calsses以下列方式调用Web服务:
self.myCollectionView.frame = CGRectMake(0,0,[UIScreen mainScreen] bounds].size.width, 800)
结果,调用该方法的最后一行代码会导致错误:
[1/17/17 21:55:39:758 MSK] 00000497 SystemErr R CIWEB错误: [admin(unknown)@ 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,可以看到以下映射:
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);
如果我在生成客户端时保留原始选项(不更改默认包) - 同样的问题和相同的错误。但在这种情况下,如果我将生成的客户端打包到一个单独的JAR中并将其用作我在WebSphere服务器上的应用程序的共享库 - 那么一切正常!但由于某些原因,这是不可接受的。
有人可以这么高兴我解决问题吗?
答案 0 :(得分:0)
我曾经在WSDL上使用Web Services Base:
示例: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>