我正在尝试使用 Apache CXF 附带的 wsdl2java 工具生成 Web 服务代理。生成本身似乎一切顺利,但生成的文件中存在一些错误,调用了不存在的构造函数。
该文件提供了解决方案:
//This constructor requires JAX-WS API 2.2. You will need to endorse the 2.2
//API jar or re-run wsdl2java with "-frontend jaxws21" to generate JAX-WS 2.1
//compliant code instead.
因此,我开始下载并安装 2.2 版本的 JAX-WS Api。我发现以下安装手册解释了如何认可这些新文件:http://dcx.sybase.com/1200/en/dbprogramming/httpserver-jaxws-lesson-two.html http://dcx.sybase.com/1200/en/dbprogramming/httpserver-jaxws-lesson-two.html我按照本指南的每一步操作,删除了旧的生成文件并生成了新文件,但问题仍然存在。
有什么提示和/或技巧吗?
(当然,现在我正在使用 -frontend jaxws21 标志来生成代理,但仍然如此)。
<defaultOptions>
<frontEnd>jaxws21</frontEnd>
</defaultOptions>
这就是我使用maven解决问题的方法:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.5.2</version>
<executions>
<execution>
<id>generate-sources2</id>
<configuration>
<sourceRoot>${basedir}/target/generated-sources/cxf</sourceRoot>
<defaultOptions>
<frontEnd>jaxws21</frontEnd>
</defaultOptions>
<wsdlOptions>
<wsdlOption>
<wsdl>...</wsdl>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
EDIT:我找到了另一种方法来使用 maven 和 cxf 版本 2.7.3 来解决这个问题。将这些库添加到您的依赖项中。您现在不必使用 jaxws21 选项:
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.2.9</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>2.2.7</version>
</dependency>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)