wsimport:无法重命名包名称

时间:2013-04-04 11:51:03

标签: java xml jaxb wsimport

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

给出

wsimport https://mycompany.com/mywspath/Documents.svc?wsdl

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

com
-microsoft
--...
-mycompany
--...
org
-datacontract
--schemas
---...

我愿意将com.mycompany.mywspath中生成的clase重构为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>

类在没有任何修改的情况下起源于同一个地方,并且不会发起com / mycompany / mywspath / test。

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

2 个答案:

答案 0 :(得分:1)

使用 wsimport -p com.bingo.charlie <YOUR_WSDL_URL>为您生成的文件定义包

答案 1 :(得分:0)

使用wsimport -b binding.xml更改生成文件的包。

来源:configure target packages