gpt4 book ai didi

java - 使用 wsimport 和 JAX 绑定(bind)按模式生成包会忽略服务类

转载 作者:行者123 更新时间:2023-12-02 12:38:11 25 4
gpt4 key购买 nike

我有一个具有多个模式的 WSDL,并且我正在尝试使用 wsimport 将代码生成到我按模式选择的包中。使用 -b 选项和 JAX-WS/JAX-B 绑定(bind)文件我基本上做到了这一点。

只有两个类仍然生成到默认路径中:服务接口(interface)和服务实现。

另一方面,使用 -p 选项,所有类都会生成到一个包中,但是当我使用该选项时,外部文件中定义的所有绑定(bind)都将被忽略。

该服务的 XPath 是什么,以便 wsimport 将这些文件生成到我的包中?我尝试过类似的事情

<jaxws:bindings node="wsdl:definitions/wsdl:service"> ...
<jaxws:bindings node="wsdl:definitions/wsdl:binding"> ...
<jaxws:bindings node="wsdl:definitions/wsdl:portType"> ...

但两者都没有任何效果。

示例:

<jaxws:bindings
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
wsdlLocation="myService.wsdl"
>

<!-- this works for schemas -->
<jaxws:bindings node="wsdl:definitions/wsdl:types/xsd:schema[@targetNamespace='http://org.com/service/1.0']" >
<jaxb:schemaBindings>
<jaxb:package name="com.myorg.service.v1" />
</jaxb:schemaBindings>
</jaxws:bindings>

<!-- the following does nothing -->
<jaxws:bindings node="wsdl:definitions/wsdl:service">
<jaxb:schemaBindings>
<jaxb:package name="com.myorg.service.v1" />
</jaxb:schemaBindings>
</jaxws:bindings>

</jaxws:bindings>

最佳答案

根据JAX-WS specification在第 8.4.1 节中,您不需要 XPath 来为 JAX-WS 类(如服务和端口类)指定包:

<jaxws:bindings wsdlLocation="http://example.org/foo.wsdl">
<jaxws:package name="com.acme.foo"/>

关于java - 使用 wsimport 和 JAX 绑定(bind)按模式生成包会忽略服务类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45062018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com