使用maven WSDL2Code插件生成webservice代码

首先,配置我们的项目使用wsdl2code插件。

先看看pom.xml配置:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.sample</groupId>
  <artifactId>wesd2code-demo</artifactId>
  <version>0.0.1-SNAPSHOT</version>

  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.axis2</groupId>
        <artifactId>axis2-wsdl2code-maven-plugin</artifactId>
        <version>1.6.2</version>
        <configuration>
          <packageName>com.sample</packageName>
          <wsdlFile>src/main/wsdl/webservice.wsdl</wsdlFile>
          <generateTestcase>true</generateTestcase>
          <syncMode>sync</syncMode>
        </configuration>
      </plugin>
    </plugins>
  </build>

</project>

这里给大家解释下上面的wsdl2code插件配置

  1. packageName:生成的源码会放到指定的package里
  2. wsdlFile:webservice定义文件的路径,可以是相对于pom.xml所在目录的相对路径
  3. generateTestcase:是否生成单元测试
  4. syncMode:生成同步还是异步接口,有三种可选值:sync, async或者both,其中both是默认选项
  5. generateServerSide:默认是false,这里没有配置,所以是只生成客户端代码
  6. outputDirectory:默认是target/generated-sources/axis2/wsdl2code

然后,我们可以运行mvn命令生成代码:

mvn clean axis2-wsdl2code:wsdl2code

最后,给生成的代码添加依赖:

  <dependencies>
    <dependency>
      <groupId>org.apache.axis2</groupId>
      <artifactId>axis2-integration</artifactId>
      <version>1.6.2</version>
    </dependency>
  </dependencies>

Maven使用体会及一些最佳实践

maven官网的介绍太简略(Run Maven),对于一些初次接触maven的用户来说,实在是让人困惑。
本文主要介绍了maven的一些常见用法,大家籍着了解一些maven的功能。

1.使用maven标准的目录结构来组织项目

maven引入了convention over configuration(约定优先配置)的原则,如果你的项目是按照maven标准的目录结构来组织,很多时候都不用写自己的配置。

2.明确指定字符编码

特别是对于需要使用非ASCII字符的开发者来说,字符编码是很严肃的一件事。
建议在你的pom.xml里添加下面的配置:

<properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

另外,单元测试时如果不明确指定字符编码,有可能输出乱码,甚至导致测试失败,建议配置:

<plugin>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.7.1</version>
  <configuration>
    <argLine>-Dfile.encoding=UTF-8</argLine>
  </configuration>
</plugin>

具体解释请参考maven-surefire-plugin乱码问题

待续…