maven在java中生成web服务
问题描述:
我是新来的maven,我想用maven从wsdl文件(使用wsimport插件?)生成java代码,这是在我的项目中(不是在url中) 。maven在java中生成web服务
我认为wsdl文件应该在myprojet/src/main/resources中的某处,并且在myproject/target/generatedsources/ws中生成源文件。
如果选择这些地方好吗?如果是这样,我如何使用maven从wsdl创建源文件到指定的文件夹?我可以选择源代码的Java包名吗?我是不是该 ?我应该从源文件中创建一个jar文件吗?我如何确保生成的源可用于编译(在类路径中)?
谢谢。
答
有几种方式与wsimport的插件来做到这一点,但大多数的例子就需要你的pom.xml的更多的知识
Apache CXF是这个确切的目的
<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/cxf</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/src/main/resources/myService.wsdl</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
一个流行的免费插件
注意:您绝对可以让一个罐子在所产生的来源,但是这将是您的POM内一个单独的条目
答
查看Apache的Axis2 - 它专门设计用于帮助基于Web服务的WSDL生成代码。基本上它正是你在找什么:
http://axis.apache.org/axis2/java/core/
编辑:扩大,我通常会运行中的WSDL2Java(.BAT或.sh)文件,并将其指向WSDL(Web或本地上复制)并生成其他所有内容。它甚至可以将它全部打包成一个罐子(我喜欢的方法,因为它更“干净”)。您可能不需要进入生成的代码并进行任何更改,只需将该jar添加到您的类路径中,然后像其他任何库一样导入并使用它。
看看这里http://*.com/questions/16057417/regarding-client-side-code-generation-from-wsdl/16058435#16058435 – Khalil 2013-04-23 21:48:06