WSDL から生成された Apache CXF Web サービス クライアントのサービス エンドポイント実装インターフェイス クラスに Java アノテーションを追加したいと考えています。
これは、 http : //confluence.highsource.org/display/J2B/Annotate+Plugin から JAXB 用の Annotate プラグインを利用する必要がある、私が使用しているバインディング ファイルです。
<jaxws:bindings wsdlLocation="OptenetServices.wsdl"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:annox="http://annox.dev.java.net"
jaxws:extensionBindingPrefixes="annox">
<jaxws:bindings node="wsdl:portType">
<annox:annotate>
<annox:annotate annox:class="org.jvnet.hk2.annotations.Contract" />
</annox:annotate>
</jaxws:bindings>
</jaxws:bindings>
エラーはありませんが、注釈が作成されていません。ノードが選択され、バインディングが使用されていることを確認できますannox:annotate
。
<jaxws:class name="Renamed">
<jaxws:javadoc>Blah blah</jaxws:javadoc>
</jaxws:class>
インターフェイスの名前が変更され、正しくコメントされます。
このコンテキストで annox を使用できるかどうか、および jaxb バインディングと jaxws バインディングの関係は不明です。
コード生成は、Maven を介して CFX によって処理されます。
<build>
<plugins>
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<sourceRoot>${project.build.directory}/generated/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/wsdl/service.wsdl</wsdl>
<extraargs>
<extraarg>-client</extraarg>
<extraarg>-p</extraarg>
<extraarg>com.example.pkg</extraarg>
<extraarg>-b</extraarg>
<extraarg>${basedir}/src/main/wsdl/bindings.xml</extraarg>
<extraarg>-xjc-Xannotate</extraarg>
<extraarg>-verbose</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.5</version>
</dependency>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics-annotate</artifactId>
<version>0.6.5</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
ありがとう。