wsimport:无法重命名包名称

ale*_*oat 2 java xml jaxb wsimport

我在https://mycompany.com/mywspath/Documents.svc?wsdl这样的地址有一个 wsdl 似乎 xsd 在 https://mycompany.com/mywspath/Documents.svc?wsdl&xsd=xsd0处可见

给一个

wsimport https://mycompany.com/mywspath/Documents.svc?wsdl
Run Code Online (Sandbox Code Playgroud)

我获得包含与文档和依赖项相关的类的层次结构(com.microsoft,...)

com
-microsoft
--...
-mycompany
--...
org
-datacontract
--schemas
---...
Run Code Online (Sandbox Code Playgroud)

我的意愿是将 com.mycompany.mywspath 中生成的 clasees 重构为 com.mycompany.mywspath.test 或 com.mycompany.mywspathA

这是因为在同一命名空间中还有其他 Web 服务包含其他定义,因此生成的类存储在同一包 com.mycompany.mywspath 中,并且从第一个 wsimport 获取的 ObjectFactory.class 会被以下调用生成的类覆盖。

我的意愿是使用 wsimport 的 -b 选项避免在来自不同 Web 服务的命名空间的不同包上进行这种绑定。

我使用了这样的 XML 绑定文件:

 <jxb:bindings 
        jxb:version="2.1"  
        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"   
        xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
        xmlns:xs="http://www.w3.org/2001/XMLSchema" 
        xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
        xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">

        <bindings schemaLocation="https://https://mycompany.com/mywspath/Documents.svc?xsd=xsd0"
                node="//xsd:schema[@targetNamespace='http://mycompany.com/mywspath']">
            <jxb:schemaBindings>
                <jxb:package name="com.mycompany.mywspath"/>
            </jxb:schemaBindings>
        </bindings>

    </jxb:bindings>
Run Code Online (Sandbox Code Playgroud)

类起源于同一位置,没有任何修改,并且 com/mycompany/mywspath/test 不是起源的。

如何将这些类移至 com/mycompany/mywspath/test 包?

Abd*_*han 7

使用

wsimport -p com.bingo.charlie YOUR_WSDL_URL
Run Code Online (Sandbox Code Playgroud)

为生成的文件定义一个包。