2010-09-16 47 views
5

我想一旦我建立在飞我的项目生成web服务客户端。它目前并因此而把它放在基于WS的命名空间命名的包..所以让我们假设名称空间google.com,生成的文件将是com.google ..是否有可能生成Web服务客户端代码中的Maven使用Apache CXF一个特殊的包?

<plugin> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-codegen-plugin</artifactId> 
      <version>2.2.10</version> 
      <executions> 
       <execution> 
        <id>generate-sources</id> 
        <phase>generate-sources</phase> 
        <configuration> 
         <sourceRoot>${basedir}/src/main/java/</sourceRoot> 
         <wsdlOptions> 
          <wsdlOption> 
           <wsdl>http://localhost:8080/ProjectName/ProjectWS?wsdl</wsdl> 
          </wsdlOption> 
         </wsdlOptions> 
        </configuration> 
        <goals> 
         <goal>wsdl2java</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 

我想要生成的文件到不同的包..可以称之为comWS.gooleClient

是否有可能做到这一点?

感谢

回答

8

它使用自定义绑定或传递-p额外的参数,如下图所示是可能的:

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>2.2.10</version> 
    <executions> 
    <execution> 
     <id>generate-sources</id> 
     <phase>generate-sources</phase> 
     <configuration> 
     <sourceRoot>${basedir}/src/main/java/</sourceRoot> 
     <wsdlOptions> 
      <wsdlOption> 
      <wsdl>http://localhost:8080/ProjectName/ProjectWS?wsdl</wsdl> 
      <extraargs> 
       <extraarg>-p</extraarg> 
       <extraarg>com.something.else</extraarg> 
      </extraargs> 
      </wsdlOption> 
     </wsdlOptions> 
     </configuration> 
     <goals> 
     <goal>wsdl2java</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
+0

非常感谢您!我想' -p com.something.else'之前这里找到你的答案,这没有奏效。 – stefanglase 2012-02-15 09:05:21

1

你尝试一下本作extraarg?

<extraarg><!--namespace-->=<!-- new package name--></extraarg> 

例子:

<plugin> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-codegen-plugin</artifactId> 
    <version>2.2.10</version> 
    <executions> 
    <execution> 
     <id>generate-sources</id> 
     <phase>generate-sources</phase> 
     <configuration> 
     <sourceRoot>${basedir}/src/main/java/</sourceRoot> 
     <wsdlOptions> 
      <wsdlOption> 
      <wsdl>http://localhost:8080/ProjectName/ProjectWS?wsdl</wsdl> 
      <extraargs> 
       <extraarg>-p</extraarg> 
       <extraarg>http://google.com=comWS.gooleClient</extraarg> 
      </extraargs> 
      </wsdlOption> 
     </wsdlOptions> 
     </configuration> 
     <goals> 
     <goal>wsdl2java</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
6

我很迟,虽然,但这个规范工作对我来说

<plugin> 
    <groupId>org.apache.cxf</groupId> 
<artifactId>cxf-codegen-plugin</artifactId> 
<version>2.7.7</version> 
<executions> 
    <execution> 
    <id>generate-sources</id> 
    <phase>generate-sources</phase> 
    <configuration> 
     <sourceRoot>${basedir}/src/main/java</sourceRoot> 
     <wsdlOptions> 
       <wsdlOption> 
       <wsdl>wsdl-location</wsdl> 
      <extraargs> 
      <extraarg>-client</extraarg> 
       </extraargs> 
     <packagenames> 
       <packagename>desired location</packagename> 
     </packagenames> 
       </wsdlOption> 
      </wsdlOptions>      
     </configuration> 
     <goals> 
     <goal>wsdl2java</goal> 
    </goals> 
    </execution> 
</executions> 
</plugin> 
相关问题