我正在尝试使用 JDK 1.6.0_31-b05 中的 JDeveloper 11g R2(11.1.2.3.0) 运行包含 JAX WS (2.1) Webservice 的应用程序。错误来自类上存在的 @WebService 注释。
当我运行应用程序时,出现以下错误,
java.lang.IllegalArgumentException: Argument(s) "type" can't be null. at com.sun.xml.bind.api.TypeReference.<init>(TypeReference.java:89) at com.sun.xml.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:758) at com.sun.xml.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:678) at com.sun.xml.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:428) at com.sun.xml.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:277) at com.sun.xml.ws.server.EndpointFactory.createSEIModel(EndpointFactory.java:363) at com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:202) at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:496) at com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:539) at weblogic.wsee.jaxws.JAXWSDeployedServlet.getEndpoint(JAXWSDeployedServlet.java:183)
嵌入式 Web Logic 似乎使用的是内部库,而不是 JDK 提供的库。JDK rt.jar 中存在的类RuntimeModeler
或类以包 com.sun.xml.ws.internal 开头。TypeReference
Weblogic 正在从 glassfish.jaxb_1.0.0.0_2-1-12.jar 和 glassfish.jaxws.rt_1.2.0.0_2-1-5.jar 中挑选这些类,但这些 jar 不是我的应用程序的一部分。
我已经使用了带有以下标签的 weblogic.xml,
<prefer-web-inf-classes>true</prefer-web-inf-classes>
我尝试在 DefaultDomain/lib 目录中添加 jaxws-api.jar 和 jws-api.jar,但这不起作用
任何线索如何解决此异常或如何强制 weblogic 使用 jdk 运行时类?相同的应用程序在独立的 weblogic 上正常工作。