Axis2 Weblogic 10 jar冲突

时间:2010-11-01 07:51:38

标签: java weblogic axis2 weblogic-10.x

我正在尝试在Weblogic 10服务器上部署axis2 webservice客户端。但是我得到以下错误:

  

java.lang.ClassCastException:   com.ctc.wstx.stax.WstxInputFactory at   javax.xml.stream.XMLInputFactory.newInstance(XMLInputFactory.java:136)     在   weblogic.servlet.internal.WebAppHelper $ IOHelperImpl.parseXML(WebAppHelper.java:247)     在   weblogic.descriptor.DescriptorCache.parseXML(DescriptorCache.java:350)     在   weblogic.servlet.internal.WebAppHelper.parseTagLibraries(WebAppHelper.java:142)     在   weblogic.servlet.internal.WebAppHelper。(WebAppHelper.java:60)     在   weblogic.servlet.internal.WebAppServletContext。(WebAppServletContext.java:402)     在   weblogic.servlet.internal.WebAppServletContext。(WebAppServletContext.java:452)     在   weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:410)     在   weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:582)     在   weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:298)     在   weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)     在   weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:93)     在   weblogic.application.internal.flow.DeploymentCallbackFlow $ 1.next(DeploymentCallbackFlow.java:360)     在   weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)     在   weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:56)     在   weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:46)     在   weblogic.application.internal.BaseDeployment $ 1.next(BaseDeployment.java:615)     在   weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)     在   weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)     在   weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:147)     在   weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:61)     在   weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:189)     在   weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:87)     在   weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)     在   weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:719)     在   weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1186)     在   weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:248)     在   weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:157)     在   weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:157)     在   weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access $ 000(DeploymentReceiverCallbackDeliverer.java:12)     在   weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer $ 1.run(DeploymentReceiverCallbackDeliverer.java:45)     在   weblogic.work.SelfTuningWorkManagerImpl $ WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:464)     在   weblogic.work.ExecuteThread.execute(ExecuteThread.java:200)     在   weblogic.work.ExecuteThread.run(ExecuteThread.java:172)cuteThread.run(ExecuteThread.java:172)

我的weblogic-application.xml如下:

<wls:prefer-application-packages>
<wls:package-name>com.ctc.wstx.*</wls:package-name>
<wls:package-name>javax.xml.*</wls:package-name>
<wls:package-name>org.apache.*</wls:package-name>
</wls:prefer-application-packages>

</wls:weblogic-application>

所有帮助将不胜感激!

2 个答案:

答案 0 :(得分:3)

修正了问题: weblogic-application.xml应为:

<wls:prefer-application-packages>
<wls:package-name>org.apache.*</wls:package-name>
</wls:prefer-application-packages>

</wls:weblogic-application>

因此它选择了weblogic stax-api实现jar。也没有直接的方法让weblogic stax解析器与Axis2 1.5.2一起使用。所以你需要在类路径中使用woodstock解析器。

答案 1 :(得分:0)

问题与CXF相同。我尝试了所有这些方法,最终放入了大量的包列表。最后放弃了我们决定使用Tomcat。

上面给出的列表只是apache类,你可能需要为依赖项及更高版本添加更多的包。

参考:http://cxf.apache.org/docs/application-server-specific-configuration-guide.html#ApplicationServerSpecificConfigurationGuide-WebLogic