【问题标题】:How to convert WDSL to Java with Axistools-maven-plugin?如何使用 Axistools-maven-plugin 将 WDSL 转换为 Java?
【发布时间】:2011-12-09 06:14:23
【问题描述】:

我将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 文件没有被正确引用。配置是否正确?

我总是收到以下信息消息

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

【问题讨论】:

  • 不幸的是,axistools-maven-plugin 会针对未找到的文件发出[INFO] Skipping up to date wsdl: ...,而不是警告路径不正确。按照答案中的建议检查您的路径,并根据MaDa 帖子将wsdlDirectory 更正为sourceDirectory
  • 为了将来参考,这个插件支持 WSDLs RPC/encoded

标签: maven axis2 wsdl2java


【解决方案1】:

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

<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。完成!

【讨论】:

    【解决方案2】:

    对我来说,它是目录参数名称。不是&lt;wsdlDirectory&gt;,而是&lt;sourceDirectory&gt;。无论如何,这是我的工作配置:

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

    【讨论】:

    • 没有生成java代码..创建了空的generated-sources\annotations文件夹,甚至没有generated-sources/wsdl2java
    【解决方案3】:

    当我在 wsdlFile 中有错字时,得到了几乎相同的(信息)消息! 实际消息是:“跳过最新的 wsdl”

    例如

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

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

    【讨论】:

    • 在我的例子中,我正确命名了 .WSDL,但显然它不喜欢大写字母。
    【解决方案4】:

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

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

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

    应该是:

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

    【讨论】:

    • 删除前导斜杠后也得到相同的信息消息。
    • +1 我必须将sourceDirectory 明确拼写为${basedir}/src/main/wsdl,即使插件帮助 (mvn help:describe -Dplugin=org.codehaus.mojo:axistools-maven-plugin -Ddetail=true) 表明这是默认值!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    • 2018-01-17
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    相关资源
    最近更新 更多