我有一个maven项目,我使用jaxws-maven-plugin,如下所示:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
<configuration>
<wsdlDirectory>src/main/wsdl</wsdlDirectory>
<wsdlFiles>
<wsdlFile>MyService.wsdl</wsdlFile>
</wsdlFiles>
<sourceDestDir>src/main/java</sourceDestDir>
<extension>true</extension>
</configuration>
</plugin>
该项目使用jdk1.5.0_22和jboss 4.2.2.GA运行。我遇到的问题是jaxws-maven-plugin生成的代码不再与jdk1.5.0_22兼容。因此,我在编译时遇到以下错误:
cannot find symbol : method getPort(javax.xml.namespace.QName,java.lang.Class<com.example.MyService>,javax.xml.ws.WebServiceFeature[]) location: class javax.xml.ws.Service
项目必须在任何情况下使用上述配置(jdk1.5.0_22和jboss 4.2.2.GA)运行,因此我无法升级到jdk1.6。
有什么办法可以解决这个问题吗?
提前感谢您的帮助。
答案 0 :(得分:0)
见here
你错过了:
<!-- Don't forget Java 5!! -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
答案 1 :(得分:0)
感谢win_wave的评论。实际上我也已经用这种方式设置了maven编译器。
无论如何,我能够自己解决这个问题。事实上,jaxws-maven-plugin的wsimport目标有一个名为 target 的配置参数。
我现在设置我的插件如下:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
</execution>
</executions>
<configuration>
...
<target>2.0</target>
...
</configuration>
</plugin>
通过将目标参数设置为 2.0 ,插件将生成与jax-ws 2.0兼容的代码,因此也与jdk 1.5兼容。