开发者

Is it possible to generate webservices client code to a special package using apache cxf in maven?

I am trying to generate the webservices client once i build my project on the fly .. It currently does so but put it in package named based on the namespace of the WS.. so lets assume the name space is google.com , the generated files would be in com.google ..

<plugin>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-codegen-plugin</artifactId>
            <version>2.2.10</version>
            <executions>
                <execution>
                    <id>generate-s开发者_运维百科ources</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>

I want to generate the files to a different package.. lets call it comWS.gooleClient

Is it possible to do that?

Thanks


It is possible using a custom binding or passing the -p extra argument as shown below:

<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>


I am very late though , but this specification worked for me

<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>


Did you try this for extraarg?

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

Example:

<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>
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜