如何告诉Axis WSDL2Java从JAR获取WSDL?

时间:2012-02-29 10:24:11

标签: java wsdl classpath axis wsdl2java

我有一个maven项目,我在其中使用Codehaus Axis Tools插件来运行WSDL2Java。

不幸的是,我没有直接控制我的WSDL - 它们是在我的Maven存储库中的JAR中提供给我的。我的项目对WSDL JAR有Maven依赖,因此WSDL文件是我的类路径中的资源。

是否可以配置WSDL2Java从JAR中获取WSDL文件?或者更具体地说,从资源类路径?

查看Codehaus(http://mojo.codehaus.org/axistools-maven-plugin/wsdl2java-mojo.html)上的文档,我看到有两个配置参数sourceDependecies和{{1我可以使用 - 但没有太多关于如何使用它们的信息。

我试过以下

wsdlFiles

<sourceDependencies>
  <sourceDependency>
    <groupId>myGroupId</groupId>
    <artifactId>myArtifactId</artifactId>
    <version>myVersion</version>
  </sourceDependency>
</sourceDependecies>
<wsdlFiles>
  <wsdlFile>myFile.wsdl</wsdlFile>
</wsdlFiles>

其中<sourceDependencies> <sourceDependency> <groupId>myGroupId</groupId> <artifactId>myArtifactId</artifactId> <version>myVersion</version> <file>myFile.wsdl</file> </sourceDependency> </sourceDependecies> 是依赖项所标识的JAR中的资源,在插件的配置中,但无济于事。

由于myFile.wsdl在Maven中没有强类型,因此很难弄清楚可能会发生什么或不发生什么。

更新:我不一定需要使用Axis。如果它支持将WSDL文件作为类路径上的资源读取,我也可以使用其他框架的WSDL-to-Java生成工具来创建我的存根。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

你可以这样试试:

<sourceDependencies>
  <sourceDependency>
    yourGroupId:yourArtifactId:yourVersion:yourFile.wsdl
  </sourceDependency>
</sourceDependecies>

多可怕啊!