如何使用Axistools-maven-plugin将WSDL转换为Java?

时间:2011-10-17 12:08:11

标签: maven axis2 wsdl2java

我按如下方式配置了axistools-maven-plugin:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>axistools-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
        <wsdlDirectory>/src/main/resources</wsdlDirectory>
        <wsdlFiles>
            <wsdlFile>adjustment.wsdl</wsdlFile>
        </wsdlFiles>
        <keep>true</keep>
        <allElements>true</allElements>
        <outputDirectory>/src/main/java</outputDirectory>
        <subPackageByFileName>true</subPackageByFileName>
        <useEmitter>true</useEmitter>
        <wsdlVersion>2</wsdlVersion>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

但我的wsdl文件没有被正确引用。配置是否正确?

我收到以下信息msg总是

[INFO] Nothing to generate. All WSDL files are up to date.

4 个答案:

答案 0 :(得分:5)

对我而言,这是目录参数名称。它不是<wsdlDirectory>而是<sourceDirectory>。无论如何,这是我的工作配置:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>axistools-maven-plugin</artifactId>
    <version>1.4</version>
    <configuration>
        <!--  A directory where the WSDL files reside: -->
        <sourceDirectory>${basedir}/src/main/resources/</sourceDirectory>
        <!-- The list of WSDL files: -->
        <wsdlFiles>
            <wsdlFile>services.wsdl</wsdlFile>
        </wsdlFiles>
        <allElements>true</allElements>
        <!-- Where you want the generated files: -->
        <outputDirectory>${basedir}/src/main/java</outputDirectory>
        <subPackageByFileName>true</subPackageByFileName>
        <useEmitter>false</useEmitter>
        <verbose>true</verbose>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>wsdl2java</goal>
            </goals>
        </execution>
    </executions>
</plugin>

答案 1 :(得分:4)

当我在wsdlFile中输入错误时,收到了几乎相同的(info)消息! 实际的消息是:“跳过最新的wsdl”

e.g。

<sourceDirectory>src\main\resources\wsdl\release\x.y\</sourceDirectory>
<wsdlFiles>
       <wsdlFile>ABCWebservicex.y.wsdl</wsdlFile>  <!-- typo here -->
</wsdlFiles>

目前存在的文件是:ABCWebservice_x.y.wsdl

答案 2 :(得分:2)

跳过/src/main/java/src/main/resources中的主要斜杠可能会有所帮助。

编辑:我仔细研究了我的工作配置。我不知道你是怎么做到的:

<wsdlDirectory>src/main/resources</wsdlDirectory>

应该是:

<sourceDirectory>src/main/resources</sourceDirectory>

答案 3 :(得分:0)

如果您在同一wsdlfiles标签下使用多个wsdls,则可能会遇到如下跳过信息:

<wsdlFiles>
  <wsdlFile><file1>.wsdl</wsdlFile>
  <wsdlFile><file2>.wsdl</wsdlFile>                                 
</wsdlFiles>

在这种情况下,请在wsdlfiles标记下使用单个WSDL或使用wsdloptions

<wsdlOptions>
  <wsdlOption>
    <wsdl>src/main/resources/wsdl/<file>.wsdl</wsdl>                         
    <wsdlLocation>classpath:wsdl<file1>.wsdl</wsdlLocation>
  </wsdlOption>
</wsdlOptions>

执行Maven Clean> Maven Update project> Maven Generated resources。完成!