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>
精彩评论