3

clientgen antタスクに従ってwsクライアントを生成しています

    <clientgen-contact
        wsdl="${wsdl-url-contact}"
        destFile="${output-file-contact}"
        packageName="${packageName}"
        type="JAXWS"
        overwrite="true"
    />

ただし、結果の jar 内の一部のクラスにJAXBElement<Integer>は、Integer.

Integerこれを回避して代わりに取得するにはどうすればよいですか?


解決

解決策は、 Paulius Matulionisが言うようにバインディング ファイルを作成することです。次のように、バインディング ファイル パラメータを clientgen に指定できます。

    <clientgen-contact
        wsdl="${wsdl-url-contact}"
        destFile="${output-file-contact}"
        packageName="${packageName}"
        type="JAXWS"
        overwrite="true"  
    >
        <binding file="${bindingFilePath}"/>
    </clientgen-contact>

Binding.xml の完全なコンテンツ:

<jaxb:bindings version="2.1" 
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
   <jaxb:globalBindings generateElementProperty="false"/> 
</jaxb:bindings> 
4

1 に答える 1

3

バインディング ファイルを作成しJAXB、クライアントの生成中に含める必要があります。ファイルは次のようになります。

<jaxb:bindings version="2.0"
               xmlns:jaxb="http://java.sun.com/xml/ns/jaxb">
        <jaxb:globalBindings generateElementProperty="false"/>
</jaxb:bindings>

フラグgenerateElementPropertyを false に設定すると、JAXBElement<Integer>代わりに生成されなくなりIntegerます。

于 2012-09-28T12:31:27.550 に答える