构造函数Service(URL, QName, WebServiceFeature[])未定义。

19

在运行wsimport为客户端 Web 服务生成代码后,我遇到了“构造函数Service(URL,QName,WebServiceFeature[])未定义错误”。我的JDK版本是1.6。请帮忙解决。

错误

7个回答

16

使用wsimport生成JAX-WS 2.0源代码时,添加额外的选项"-target 2.0"等等。


这对我有效,因为我正在使用Java EE 5,它覆盖了JAC-WS的版本。 - Half_Duplex

12

你编写的代码需要 JAX-WS 2.1。版本 2.0 没有 WebServiceFeature 类,因此在 Service 中也没有这样一种参数类型的构造函数。

可以看到,在 Java SE 6 中不存在这样的构造函数:javax.xml.ws.Service SE 6,但是在 Java EE 6 中有:javax.xml.ws.Service EE 6


1
@Sergey 你的意思是什么?一般来说,过去的版本不会反映未来的变化。当需要2.1功能时,应该使用2.1版本。 - Mikko Maunu
Mikko Maunu,抱歉我很蠢,请问如何设置jaxws的版本 - 只需替换jar文件吗? - Sergey
1
是的,你需要新代码,对于一个库,请确保它优先于jdk类(在eclipse中,顺序和导出顺序必须将jdk放置在新库下方)。另外,有jdk 1.7。 - ThomasRS
1
我个人认为@Sireesh Yarlagadda的答案是真正的解决方案,而这个答案更像是对问题的提示。 - huahsin68
@Fritz的答案也可以是另一种解决方案。 - huahsin68

7

请在首选项中更改您的JAX-WS设置。这是Java 6 SE和Java EE之间的兼容性问题。

enter image description here

有时候将Java 1.6更改为Java 1.7也可以解决此问题。


3
从classpath中删除jdk1.6,然后添加jdk1.7可以解决此问题。

你也可以将jdk1.6替换为jdk1.8。 - Ivan Aranibar

1

1
此外,如果您需要从Java 6切换到Java 7,则可能需要更改“Java构建路径”中的“Order and Export” Eclipse选项卡,并将“JRE系统库”置于列表顶部。如果这样做可以解决问题,则可能意味着您在项目中有一个旧的jar文件。

0

在Eclipse中检查Java版本。打开命令提示符并检查Java版本(命令:java -version)。 匹配两个版本,它应该可以正常工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接