构造函数类javax.xml.ws.Service中的服务无法应用于给定类型

use*_*573 5 service jax-ws

我用apache-cxf-2.7.4创建了一个Web服务.我进入了项目中生成的课程.我项目中的库是:

  • MATH3公地-3.2.jar
  • XStream的-1.4.4.jar
  • JAXWS-API-2.2.5.jar

我有以下错误:

  constructor Service in class javax.xml.ws.Service cannot be applied to given types;
  required: java.net.URL,javax.xml.namespace.QName
  found: java.net.URL,javax.xml.namespace.QName,javax.xml.ws.WebServiceFeature[]
  reason: actual and formal argument lists differ in length
Run Code Online (Sandbox Code Playgroud)

Pau*_*gas 11

问题是JAX-WS API的版本.应用程序的类加载器首先加载了Java SE或Java EE中包含的版本.

对于Java SE 6或Java EE 5,JAX-WS API 2.1.构造函数在javax.xml.ws.Service:

javax.xml.ws.Service.Service(URL, QName)
Run Code Online (Sandbox Code Playgroud)

对于Java SE 7或Java EE 6,JAX-WS API 2.2.构造函数在javax.xml.ws.Service:

javax.xml.ws.Service.Service(URL, QName)
javax.xml.ws.Service.Service(URL, QName, WebServiceFeature...)  // You need this!
Run Code Online (Sandbox Code Playgroud)

有三种可能的解决方案(取决于它是Web应用程序还是独立应用程序):

  1. 使用Java SE 7或Java EE 6.

  2. wsdl2java使用参数重新运行-frontend jaxws21以生成符合JAX-WS 2.1的代码.

  3. 更改类加载器以首先加载应用程序中包含的类.