2013-02-18 103 views
2

我是Maven和CXF的新手,我試圖設置pom.xml以使用wsdl2java生成代碼。我有一些需要添加到wsdl2java命令的參數,但我不知道如何。在pom.xml中定義wsdl2java參數

這是命令會怎麼看終端:

wsdl2java -fe jaxws21 -d gen -validate -p com.example -faultSerialVersionUID FQCN -asyncMethods -bareMethods -exceptionSuper com.example.ExampleException wsdl/objects.wsdl 

在我的pom.xml我有以下幾點:

<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-sources/cxf</sourceRoot> 
       <wsdlOptions> 
        <wsdlOption> 
         <wsdl>${project.basedir}/src/main/resources/wsdl/objects.wsdl</wsdl> 
         <wsdlLocation>classpath:wsdl/objects.wsdl</wsdlLocation> 
        </wsdlOption> 
       </wsdlOptions> 
       <defaultOptions> 
        <markGenerated>true</markGenerated> 
        <asyncMethods /> 
        <bareMethods /> 
       </defaultOptions> 
      </configuration> 
      <goals> 
       <goal>wsdl2java</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

我敢肯定,我得到了asyncMethods和bareMethods參數正確,因爲代碼生成正常。不過,我對一些事情很好奇。

我想知道如何:

  • jaxws21值加在一起的-fe參數

  • com.example值添加-p參數

  • 與添加-faultSerialVersionUIDFQCN

  • 添加-exceptionSupercom.example.ExampleException

我試着讀了CXF文檔,SO,谷歌和其他許多地方。我通過搜索「cxf pom filetype:xml」讀取了許多不同的xml文件。不幸的是,我還沒能弄清楚這一點。

回答

4

這是配置看起來如何根據你的問題:

... ...  

<defaultOptions> 
    <markGenerated>true</markGenerated> 
    <asyncMethods /> 
    <bareMethods /> 
    <!-- add the -fe argument together with the jaxws21 value --> 
    <frontEnd>jaxws21</frontEnd> 
    <!-- add the -p argument with the com.example value --> 
    <packagenames> 
     <packagename>com.example</packagename> 
    </packagenames> 
    <!-- add the -faultSerialVersionUID with the FQCN value --> 
    <faultSerialVersionUID>FQCN</faultSerialVersionUID> 
    <!-- add the -exceptionSuper with the com.example.ExampleException value --> 
    <exceptionSuper>com.example.ExampleException</exceptionSuper> 
</defaultOptions> 

... ... 

可以decomplie CXF-CODEGEN-plugin.jar和直視源代碼,看看它是如何解析這些命令行參數,更具體,這個類:

org.apache.cxf.maven_plugin.wsdl2java.WsdlOption

希望這有助於。

+0

Oh awsomess!將盡快研究這一點。看起來不錯! – span 2013-02-19 07:52:50