【问题标题】:wsimport maven task not workingwsimport maven 任务不工作
【发布时间】:2018-01-22 13:35:06
【问题描述】:

我正在尝试从远程 wsdl 导入数据。我用maven简单的代码写了如下

    <plugin>
     <groupId>org.codehaus.mojo</groupId>
     <artifactId>jaxws-maven-plugin</artifactId>
     <executions>
         <execution>
             <id>generate-stubs1</id>
             <phase>process-classes</phase>
             <goals>
                 <goal>wsimport</goal>
             </goals>
             <configuration>
                <wsdlUrls>
                    <wsdlUrl>http://www.webservicex.com/globalweather.asmx?wsdl</wsdlUrl>
                </wsdlUrls>
                <packageName>com.sth.remote</packageName>
             </configuration>
         </execution>
     </executions>
 </plugin>      

这个脚本的奇怪行为是它只在第一次工作。之后,例如“全新安装”,不再生成来自 wsdl 的 java 代码。在调试模式下,我得到了这个输出:

[DEBUG] -- end configuration --
[DEBUG] The wsdl Directory is Q:\workspace\xxx\src\wsdl
[INFO] No WSDLs are found to process, Specify at least one of the following parameters: wsdlFiles, wsdlDirectory or wsdlUrls.

如何解决这个问题?

更新:

我注意到当我删除目标目录然后刷新 eclipse 项目时,这个任务在 Eclipse 后台工作,以便 eclipse 编译代码并运行这个任务,但不是通过直接调用 mvn jaxws:wsimport

更新 2:

还有什么,通过mvn jaxws:wsimport 运行的脚本似乎省略了我的配置,因为如果我更改例如staleFile

<staleFile>Q:\workspace\xxx\target\jaxws\stale2</staleFile>

我在调试中仍有信息表明正在使用 staleFile 的默认路径:

<staleFile default-value="${project.build.directory}/jaxws/stale"/>
...
[DEBUG]   (f) staleFile = Q:\workspace\visasin-gwt\target\jaxws\stale

有人知道发生了什么吗? @dienerd 解决方案对我不起作用

【问题讨论】:

    标签: java maven wsdl wsimport


    【解决方案1】:

    我删除了你的

    <id>generatestubs-1</id>
    

    这运行得很完美。我做了一个超级简单的 pom,只有一个 maven 编译器和 java.version 1.8。我不确定你在做什么,但我会把它简单化并添加一些东西:

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>jaxws-maven-plugin</artifactId>
            <executions>
              <execution>
                <phase>process-classes</phase>
                  <goals>
                     <goal>wsimport</goal>
                  </goals>
                  <configuration>
                    <wsdlUrls>
                        <wsdlUrl>http://www.webservicex.com/globalweather.asmx?wsdl</wsdlUrl>
                    </wsdlUrls>
                    <packageName>com.sth.remote</packageName>
                 </configuration>
               </execution>
            </executions>
        </plugin>
    

    【讨论】:

    • 你在运行 jaxws:wsimport 任务吗?我之所以问,是因为我发现在 pom 中进行一些更改后,此任务正在后台运行,实际上生成 java 代码但不是通过 jaxws:wsimport ?!我做错了吗?
    • 我不明白你的意思。但是这一行在日志中吐出: [DEBUG] Goal: org.codehaus.mojo:jaxws-maven plugin:2.5:wsimport (default) [DEBUG] Style: Regular [DEBUG] Configuration:
    • 抱歉,我之前的评论可能不够准确。在我删除“staleFile”(${project.build.directory}/jaxws/stale) 并删除生成的 java WS 代码之后,我在您回答后立即注意到该任务在 Eclipse 的后台运行。然后当我在 pom.xml 中保存一些(例如只是简单的空间)更改时,Eclipse 会在后台运行任务,因此这个 jaxws-maven-plugin 和其他人会生成自己的代码。但是通过直接调用 jaxws:wsimport 任务这不起作用。你知道如何解决这个问题吗?非常感谢您宝贵的时间
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 2011-10-15
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    相关资源
    最近更新 更多