【问题标题】:Web service (JAX-WS) client in different package不同包中的 Web 服务 (JAX-WS) 客户端
【发布时间】:2017-01-17 19:33:30
【问题描述】:

应该看起来像一个愚蠢的问题,但我有以下问题。 有一个外部 Web 服务,WSDL 可用。我的任务是从另一个企业应用程序(在 WebSphere 8.5 上运行)调用它的方法 使用 Rational Application Developer,我将 Web 服务客户端类生成到应用程序的项目中,指定应用程序的包,该包与 Web 服务的包不同。 Web 服务的方法返回一个 POJO,它是 ArrayList 的包装器。然后我调用 Web 服务,使用以下方式生成的 calsses:

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 错误: [管理员(未知)@ 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 服务器上我的应用程序的共享库 - 那么一切正常!但由于某些原因,这是不可接受的。

有人能这么愉快地帮我解决问题吗?

【问题讨论】:

    标签: java web-services package client jax-ws


    【解决方案1】:

    我曾经使用基于 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-05
      • 2018-03-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多