在CXF wsdl2java中设置Java遵从性级别
我是CXF的新手,正在尝试从WSDL创建客户机。我过去使用过地铁和安讯士。我下载了apache-cxf-2.3.3,并使用wsdl2java生成客户端存根。我使用Maven并使用以下内容设置pom:在CXF wsdl2java中设置Java遵从性级别,java,cxf,wsdl2java,Java,Cxf,Wsdl2java,我是CXF的新手,正在尝试从WSDL创建客户机。我过去使用过地铁和安讯士。我下载了apache-cxf-2.3.3,并使用wsdl2java生成客户端存根。我使用Maven并使用以下内容设置pom: <properties> <cxf.version>2.3.3</cxf.version> </properties> <dependencies> <dependency> <groupI
<properties>
<cxf.version>2.3.3</cxf.version>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-security</artifactId>
<version>${cxf.version}</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<inherited>true</inherited>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<optimize>true</optimize>
<debug>true</debug>
</configuration>
</plugin>
</plugins>
</build>
及
问题似乎与以下事实有关:生成的代码使用Java 6特性(“require”元素用于XmlElementRef,新的服务构造函数),而CXF Maven依赖项用于Java 5
有没有办法指定生成的代码应该与Java 5兼容?没有提到任何用于指定Java版本的选项
您可以尝试使用Maven生成客户机存根,这应该尊重Maven编译器的源版本和目标版本
如果这不起作用,您可以通过更改pom中的源代码行和目标行,将Maven配置为使用Java 6,如下所示:
<source>1.6</source>
<target>1.6</target>
1.6
1.6
实际上,CXF的wsdl2java命令行工具与Java 5兼容的代码可能与Java 6不兼容。原因是它生成的代码与JAX-WS2.2和JAXB2.2兼容。然而,Java6中包含的这些API的版本只有2.1
有几种选择:
1) 最简单的方法是将“-fe jaxws21”添加到wsdl2java命令中,使其生成符合jaxws 2.1而不是2.2的代码
2) 将2.2 api JAR添加到JDK的认可目录中
3) 在maven中配置编译器插件以“认可”2.2 jars我认为Glassfish没有wsdl2java版本。我在生成Metro客户端时使用了wsimport。Axis有一个wsdl2java,但我目前没有安装它。使用cxf codegen插件创建相同的Java 6代码。对不起,你说得对。Metro版本的导入是
wsimport
。感谢您对兼容性和使用-fe选项的说明。上的描述没有很好地解释它,可以指定使用哪个jax-ws版本。要为JDK8设置哪个版本的前端?目前在我的lagacy项目中设置了jaxws21,但它看起来已经过时了
[ERROR] \Devel\Projects\Client-CXF\src\main\java\my\snmpv2\MyService.java:[76,8] cannot find symbol
[ERROR] symbol : constructor Service(java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[])
[ERROR] location: class javax.xml.ws.Service
<source>1.6</source>
<target>1.6</target>