2016-06-30 14 views
1

Apache Axisを使用して、WSDLファイルからJavaソースを生成しています。 mavenの実行はエラーなしで成功しましたが、生成されるクラスはありませんでした。WSDLからソースを生成しないaxistools-maven-plugin

質問:私はここで何をしないのですか?

<plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>axistools-maven-plugin</artifactId> 
     <version>1.4</version> 
     <executions> 
      <execution> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>wsdl2java</goal> 
       </goals> 
       <configuration> 
        <sourceDirectory>/src/main/resources</sourceDirectory> 
        <outputDirectory>/src/main/java</outputDirectory> 
        <wsdlFiles> 
         <wsdlFile>thesourcewsdlfile.wsdl</wsdlFile> 
        </wsdlFiles> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 

この設定の問題点はわかりません。

答えて

0

があなたのMavenプロジェクトのソースと出力ディレクトリ基盤を定義しようとすると、それは以下のように設定を変更し、実行時に右の絶対パスを指すように、標準のMavenのプロパティを使用して、次のとおりです。これに基づき

<sourceDirectory>${basedir}/src/main/resources</sourceDirectory> 
<outputDirectory>${basedir}/src/main/java</outputDirectory> 

構成は、thesourcewsdlfile.wsdlsrc/main/resources/thesourcewsdlfile.wsdl

の下に位置するようになっている完全なプラグイン構成は、したがってすべきである:

<plugins> 
    <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>axistools-maven-plugin</artifactId> 
     <version>1.4</version> 
     <executions> 
      <execution> 
       <phase>generate-sources</phase> 
       <goals> 
        <goal>wsdl2java</goal> 
       </goals> 
       <configuration> 
        <sourceDirectory>${basedir}/src/main/resources</sourceDirectory> 
        <outputDirectory>${basedir}/src/main/java</outputDirectory> 
        <wsdlFiles> 
         <wsdlFile>thesourcewsdlfile.wsdl</wsdlFile> 
        </wsdlFiles> 
       </configuration> 
      </execution> 
     </executions> 
    </plugin> 
</plugins> 

また、次の依存関係をプロジェクトに追加する必要があります。一般的な注意点としては

<dependencies> 
    <dependency> 
     <groupId>org.apache.axis</groupId> 
     <artifactId>axis</artifactId> 
     <version>1.4</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.xml</groupId> 
     <artifactId>jaxrpc-api</artifactId> 
     <version>1.1</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.mail</groupId> 
     <artifactId>mail</artifactId> 
     <version>1.4.1</version> 
    </dependency> 
    <dependency> 
     <groupId>javax.activation</groupId> 
     <artifactId>activation</artifactId> 
     <version>1.1</version> 
    </dependency> 
</dependencies> 

、彼らが自動的に生成されているので、targetディレクトリの下に生成されたソースを配置することがはるかに良いとすべきでしょうが使用中のバージョンコントロールに追加することはできません。標準的な場所は${project.build.directory}/generated-sources${project.build.directory}は実際にtargetディレクトリを指す標準プロパティです)の下に任意の(意味のある)ディレクトリになります。

+0

私は 'によって引き起こさ取得しています:前述したように、私は絶対パスを与えるときorg.apache.axis.wsdl.WSDL2Java':java.lang.ClassNotFoundExceptionが。私はそれを削除するときに任意のソースファイルなしで実行します。 – Arun

+0

@ArunRajは私のアップデートをチェックして、試してみました。 –

+0

同じエラーが発生しました: 'org.codehaus.mojo:axistools-maven-plugin:1.4:wsdl2java:org.apache.axis.wsdl.WSDL2Java'の実行中に必須のクラスが見つかりませんでしたか? – Arun