Maven2 - wsdl2code plugin

wsdl2code插件可以将指定的WSDL文件自动生成axis的客户端和服务器端存根代码,这样大大减少了写web service的实现和调用代码量。这个插件有基于eclipse的,也有基于maven2的,今天尝试用maven2来生成客户端代码,下面记录实现步骤:

1. 修改项目根目录下的pom.xml文件,添加如下plugin:

 

<plugin>
    		<groupId>org.apache.axis2</groupId>
    		<artifactId>axis2-wsdl2code-maven-plugin</artifactId>
    		<version>1.5.1</version>
    		<executions>
    			<execution>
    				<id>wsdl2code</id>
    				<goals>
    					<goal>wsdl2code</goal>
    				</goals>
    				<configuration>
    					<packageName>com.wisdom.axis.services</packageName>
						<wsdlFile>src/main/wsdl/SimpleService.wsdl</wsdlFile>
						<databindingName>xmlbeans</databindingName>
    				</configuration>
    			</execution>
    		</executions>
    	</plugin>

 解释下,packageName: 生成的客户端存根类所用到的包名,wsdlFile: 指定wsdl文件所处的路径, databindingName: 指定数据绑定的框架,用来生成客户端代码。默认情况下是adb, 这里用xmlbeans是基于apache的xmlbeans框架对wsdl文件进行解析。如果想要生成服务器端代码,需要在configuration下面将generateServerSide和generateServerSideInterface设为true。默认情况下它们都是false.

 

2.  加入依赖包:

<dependency>
    	<groupId>org.apache.axis2</groupId>
    	<artifactId>axis2</artifactId>
    	<version>1.5.1</version>
    	<type>pom</type>
    	<scope>compile</scope>
    </dependency>

<dependency>
    	<groupId>org.apache.xmlbeans</groupId>
    	<artifactId>xmlbeans</artifactId>
    	<version>2.4.0</version>
    </dependency>
 

 

3. 设置好后,可以通过命令行进入到pom文件所在的目录,运行命令: mvn axis2-wsdl2code:wsdl2code。 这里可能会遇到下面的异常:

[ERROR]BUILD ERROR
------------------------------------------------------------------------
Internal error in the plugin manager executing goal
'org.apache.axis2:axis2-wsdl2code-maven-plugin:1.4.1:wsdl2code': Unable to
find the mojo
'org.apache.axis2:axis2-wsdl2code-maven-plugin:1.4.1:wsdl2code' in the
plugin 'org.apache.axis2:axis2-wsdl2code-maven-plugin'
org.apache.axis2.wsdl.codegen.CodeGenerationException
------------------------------------------------------------------------
For more information, run Maven with the -e switch
------------------------------------------------------------------------
Total time: 1 minute 58 seconds
Finished at: Wed Feb 10 14:37:26 PST 2010
Final Memory: 16M/41M 

 这个应该是网络问题,有一个临时解决方案,就是在~\.m2下面创建一个settings.xml文件,并且加入下面的的mirrors:

<settings>
  <mirrors>

    <mirror>
      <id>java.net.2</id>
      <name>java.net Mirror of http://repo1.maven.org/maven2/</name>
      <url>http://download.java.net/maven/2/</url>
      <mirrorOf>java.net</mirrorOf>
    </mirror>

  </mirrors>
</settings>
 

具体的可以参考http://stackoverflow.com/questions/2206687/how-can-i-setup-dependencies-for-axis2-axiom-on-maven2

 

请保证上面设置后将 ~/.m2/repository/org/apache/axis2 下的文件全部删除掉,然后再运行mvn axis2-wsdl2code:wsdl2code

 

找到客户端代码位于/target/generated-sources/axis2/wsdl2code/src/com/wisdom/axis/services/。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值