gpt4 book ai didi

spring - weblogic上的@Webservice注解异常

转载 作者:行者123 更新时间:2023-12-03 01:21:42 27 4
gpt4 key购买 nike

我正在尝试使用 JDK 1.6.0_31-b05 中的 JDeveloper 11g R2(11.1.2.3.0) 运行包含 JAX WS (2.1) Web 服务的应用程序。该错误来自类上存在的 @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 逻辑似乎正在使用内部库,而不是 JDK 提供的库。 RuntimeModelerTypeReference 类存在于 JDK rt.jar 中,以包 com.sun.xml.ws.internal 开头。 Weblogic 正在从 glassfish.jaxb_1.0.0.0_2-1-12.jar 和 glassfish.jaxws.rt_1.2.0.0_2-1-5.jar 中挑选这些类,但这些 jar 不是我的应用程序的一部分。

  1. 我已经使用带有以下标记的 weblogic.xml,

    <prefer-web-inf-classes>true</prefer-web-inf-classes>
  2. 我尝试在 DefaultDomain/lib 目录中添加 jaxws-api.jar 和 jws-api.jar,但这不起作用

有任何线索如何解决此异常或如何强制 weblogic 使用 jdk 运行时类吗?相同的应用程序可以在独立的 weblogic 上正常工作。

最佳答案

我遇到了同样的问题,并在这里找到了答案:http://www.intropro.com/resources/blog/66-argument-s-type-can-t-be-null

简而言之 - 出现问题是因为您的类路径中有 jaxb-impl ,它覆盖了 WebLogics 自己的 jaxb,您可能没有从 pom.xml 中显式引用此依赖项,但其他一些依赖项会这样做。就我而言,我有 apache-cxf 作为 Maven 依赖项,它有 jaxb 2.1.13 作为子依赖项,范围为“compile”。我所要做的就是排除这个 apaches jaxb 并添加我自己的依赖项,范围为“provided”以显式使用 WebLogics jaxb。

在 pom.xml 中它看起来像这样:

<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>2.7.2</version>
<exclusions>
<exclusion>
<artifactId>jaxb-impl</artifactId>
<groupId>com.sun.xml.bind</groupId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>com.sun.xml.bind</groupId>
<artifactId>jaxb-impl</artifactId>
<scope>provided</scope>
<version>2.1.13</version>
</dependency>

您可以使用 pom.xml View 中的 eclipse“依赖关系层次结构”选项卡或简单地使用命令行“mvn dependency:tree”来了解 jaxb-impl 如何将其添加到您的类路径中。

关于spring - weblogic上的@Webservice注解异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14283188/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com