`
nocohol
  • 浏览: 49215 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Maven2 - wsdl2code plugin

    博客分类:
  • AXIS
阅读更多

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/。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics