0

为什么我在将 CXF Web 服务客户端应用程序部署到 weblogic 9.2 时看到这个

Caused by NoClassDefFoundError: null
->>  350 | newInstance0   in java.lang.Class
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    303 | newInstance    in     ''
|     36 | newInstance .  in javax.xml.ws.spi.FactoryFinder
|     95 | find           in     ''
|     82 | provider . . . in javax.xml.ws.spi.Provider
|     56 | <init>         in javax.xml.ws.Service

使用带有 Java HotSpot(TM) 服务器 VM 版本 1.5.0_10-b03 的 WebLogic Server 运行

部署有 jaxws-rt-2.1.3.jar 和 com/sun/xml/ws/spi/ProviderImpl.class 部署有 cxf-rt-frontend-jaxws-2.1.3.jar 和 org/apache/cxf/jaxws /spi/ProviderImpl

当这些依赖项丢失时,我发现了这个问题,但在这种情况下它们并没有丢失。

我确实使用 WEB-INF/weblogic.xml 部署战争

<?xml version="1.0" encoding="UTF-8"?>
    <weblogic-web-app
        xmlns="http://www.bea.com/ns/weblogic/90"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.bea.com/ns/weblogic/90 
        http://www.bea.com/ns/weblogic/90/weblogic-web-app.xsd">
    <container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
</weblogic-web-app>

4

1 回答 1

0

我在应用程序 WEB-INF 中发现了两个不兼容的 jar,因为它们都实现了类

javax.xml.ws.spi.FactoryFinder
javax.xml.ws.spi.Provider
javax.xml.ws.Service

两个冲突的罐子是

jaxws-api-2.1.jar
geronimo-jaxws_2.2_spec-1.0.jar

我删除了 jaxws-api-2.1.jar 并能够解决这个问题。

于 2013-04-01T19:56:16.147 回答