maven在java中生成web服务

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文件吗?我如何确保生成的源可用于编译(在类路径中)?

谢谢。

+0

看看这里http://*.com/questions/16057417/regarding-client-side-code-generation-from-wsdl/16058435#16058435 – Khalil 2013-04-23 21:48:06

有几种方式与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添加到您的类路径中,然后像其他任何库一样导入并使用它。