wsimport maven任务无法正常工作

时间:2018-01-22 13:35:07

标签: java maven wsdl wsimport

我想从远程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>      

这个脚本的行为很奇怪,它只是第一次工作。之后,例如“clean install”,不再生成来自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解决方案不适合我

1 个答案:

答案 0 :(得分:1)

我删除了你的

<id>generatestubs-1</id>

这完美无缺。我做了一个超级简单的pom w /只是一个maven编译器&amp; java.version 1.8。我不确定你在做什么,但我会把它归还给简单的&amp;添加内容:

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