|
Page Edited :
CXF20DOC :
Maven Integration and Plugin
Maven Integration and Plugin has been edited by Glen Mazza (Nov 29, 2007). Change summary: Gave a CLI statement (mvn generate-sources) that will run wsdl2java. We also need to know the plugin prefix for wsdl2java... Maven POM InformationTo use CXF within Maven, you'll need to declare the CXF dependencies in your POM. The CXF groupId is "org.apache.cxf". Here is a small example: <dependencies> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>2.0.2-incubator</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http</artifactId> <version>2.0.2-incubator</version> </dependency> <!-- Jetty is needed if you're are not using the CXFServlet --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-transports-http-jetty</artifactId> <version>2.0.2-incubator</version> </dependency> </dependencies> You'll also need to add the Apache Incubator Maven repository: <repositories> <repository> <id>apache-snapshots</id> <name>Apache SNAPSHOT Repository</name> <url>http://people.apache.org/repo/m2-snapshot-repository/</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>apache-incubating</id> <name>Apache Incubating Repository</name> <url>http://people.apache.org/repo/m2-incubating-repository/</url> </repository> <!-- for jaxb-impl --> <repository> <id>java.net</id> <url>http://download.java.net/maven/1/</url> <layout>legacy</layout> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>apache-plugin-snapshots</id> <name>Apache Maven Plugin Snapshots</name> <url>http://people.apache.org/repo/m2-snapshot-repository</url> <releases> <enabled>false</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>apache-plugin-incubating</id> <name>Apache Plugin Incubating Repository</name> <url>http://people.apache.org/repo/m2-incubating-repository/</url> </pluginRepository> </pluginRepositories> Maven PluginWSDL2JavaCXF includes a Maven plugin which can generate artifacts from WSDL. Here is a simple example: <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>2.0.2-incubator</version> <executions> <execution> <id>generate-sources</id> <phase>generate-sources</phase> <configuration> <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot> <wsdlOptions> <wsdlOption> <wsdl>${basedir}/src/main/wsdl/myService.wsdl</wsdl> </wsdlOption> </wsdlOptions> </configuration> <goals> <goal>wsdl2java</goal> </goals> </execution> </executions> </plugin> In this example we're running the wsdl2java goal in the generate-sources phase. By running mvn generate-sources, CXF will generate artifacts in the <sourceRoot> directory that you specify. Each <wsdlOption> element corresponds to a WSDL that you're generated artifacts for. In the above example we're generating we're specifying the WSDL location via the <wsdl> option. Other configuration arguments can be include inside the <wsdlOption> element. These pass arguments to the tooling and correspond to the options outlined on the WSDL To Java page. Example 1: Passing in a JAX-WS Binding file<configuration> <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot> <wsdlOptions> <wsdlOption> <wsdl>${basedir}/src/main/wsdl/myService.wsdl</wsdl> <extraargs> <extraarg>-b</extraarg> <extraarg>${basedir}/src/main/resources/wsdl/async_binding.xml</extraarg> </extraargs> </wsdlOption> </wsdlOptions> </configuration> In this example we're specifying that we want CXF to use our JAX-WS binding file. Binding files are a way to customize the output of the artifacts that CXF generates. For instance, it allows you to change the package name CXF uses. Example 2: Specifying a service to generate artifacts for<configuration> <sourceRoot>${basedir}/target/generated/src/main/java</sourceRoot> <wsdlOptions> <wsdlOption> <wsdl>${basedir}/src/main/wsdl/myService.wsdl</wsdl> <extraargs> <extraarg>-sn</extraarg> <extraarg>MyWSDLService</extraarg> </extraargs> </wsdlOption> </wsdlOptions> </configuration> In this example we're specifying that we only want to generate artifacts for the service named "MyWSDLService" in the WSDL. Java2WSDLCXF also includes a Maven plugin which can generate WSDL from Java code. Here is a simple example: <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>2.0.2-incubator</version> <dependencies> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>2.0.2-incubator</version> </dependency> </dependencies> <executions> <execution> <id>generate-wsdl</id> <phase>process-classes</phase> <configuration> <className>org.example.MyService</className> </configuration> <goals> <goal>java2wsdl</goal> </goals> </execution> </executions> </plugin> Here are the options you can use: <configuration> <className>...</className> <classPath>...</classPath> <outputFile>...</outputFile> <serviceName>...</serviceName> <soap12>...</soap12> <targetNameSpace>...</targetNameSpace> <verbose>...</verbose> <quiet>...</quiet> </configuration> Java2WSThis plugin will be ready in 2.1 release .Now You can use 2.1-incubator-SNAPSHOT version of this plugin. <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-java2ws-plugin</artifactId> <version>2.1-incubator-SNAPSHOT</version> <dependencies> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>2.1-incubator-SNAPSHOT</version> </dependency> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-simple</artifactId> <version>2.1-incubator-SNAPSHOT</version> </dependency> </dependencies> <executions> <execution> <id>generate-test-sources</id> <phase>generate-test-sources</phase> <configuration> <className>org.apache.hello_world.Greeter</className> <genWsdl>true</genWsdl> <verbose>true</verbose> </configuration> <goals> <goal>java2ws</goal> </goals> </execution> </executions> </plugin> Here are the options you can use: <configuration> <className>...</className> <classPath>...</classPath> <outputFile>...</outputFile> <genWsdl>..</genWsdl> <genServer>..</genServer> <genClient>..</genClient> <genWrapperbean>..</genWrapperbean> <frontend>...</frontend> <databinding>...</databinding> <serviceName>...</serviceName> <soap12>...</soap12> <targetNameSpace>...</targetNameSpace> <verbose>...</verbose> <quiet>...</quiet> </configuration> The outputFile value by default will be: {project.build.directory}/generated/wsdl/{className}.wsdl
Refer to this link http://cwiki.apache.org/CXF20DOC/java-to-ws.html |
Unsubscribe or edit your notifications preferences
