2012-05-04 16 views
8

Apache CXFに付属のwsdl2javaツールを使用してWebサービスプロキシを生成しようとしています。世代自体はうまくいくようですが、生成されるファイルにはいくつかのエラーがあり、存在しないコンストラクタが呼び出されます。wsdl2java/Apache CXFを使用したWebサービスプロキシクラスの生成

ファイルには、ソリューションを提供しています:

//This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2 
//API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1 
//compliant code instead. 

だから私は、JAX-WS APIを2.2バージョンをダウンロードしてインストールするために着手しました。これらの新しいファイルを承認する方法を説明している次のインストールマニュアルが見つかりました:http://dcx.sybase.com/1200/en/dbprogramming/httpserver-jaxws-lesson-two.htmlこのガイドのすべての手順に従って、古い生成ファイルを削除して新しいファイルを生成しましたが、問題は解決しません。

ヒントやヒント (今はもちろん、私はプロキシを生成するために-frontend jaxws21フラグを使用していますが、それでも)。

+0

Javaクラスに 'int'' long''String'や' java.util.List'や 'javaなどのクロス言語型のプリミティブ属性が含まれていることを確認してください。これでjaxws21オプションを使用する必要はありません。 util.Date' –

+0

ご使用のJavaおよびCXFのバージョンを提供するために質問を更新してください。 –

答えて

6
<defaultOptions> 
    <frontEnd>jaxws21</frontEnd> 
</defaultOptions> 

これは私がMavenを使用して問題を解決した方法です:

 <plugin> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-codegen-plugin</artifactId> 
      <version>2.5.2</version> 
      <executions> 
       <execution> 
        <id>generate-sources2</id> 
        <configuration> 
         <sourceRoot>${basedir}/target/generated-sources/cxf</sourceRoot> 
         <defaultOptions> 
          <frontEnd>jaxws21</frontEnd> 
         </defaultOptions> 
         <wsdlOptions> 
          <wsdlOption> 
           <wsdl>...</wsdl> 
          </wsdlOption> 
         </wsdlOptions> 
        </configuration> 
        <goals> 
         <goal>wsdl2java</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

EDIT:私はこの使用してMavenとCXFバージョン2.7.3を解決するための別の方法を見つけました。依存関係にこれらのライブラリを追加してください。

<dependency> 
     <groupId>javax.xml.ws</groupId> 
     <artifactId>jaxws-api</artifactId> 
     <version>2.2.9</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.xml.bind</groupId> 
     <artifactId>jaxb-api</artifactId> 
     <version>2.2.7</version> 
    </dependency> 
関連する問題