2010-11-01 40 views
1

我想在Weblogic 10服務器上部署axis2 webservice客戶端。但是我得到下面的錯誤:Axis2 Weblogic 10 jar衝突

java.lang.ClassCastException: com.ctc.wstx.stax.WstxInputFactory在 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) at 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) at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListe nerInvoker.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) at 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。製備(AppContainerInvoker.java:61) 在 weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:189) 在 weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation。 java:87) at 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運行(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> 

所有幫助將不勝感激!

回答

3

修正的問題: weblogic的-application.xml中應該是:

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

</wls:weblogic-application> 

所以它拿起STAX的weblogic-API實現罐子。此外,沒有直接的方法可以讓weblogic stax解析器與Axis2 1.5.2一起使用。所以你需要在班級路徑中使用woodstock解析器。

0

問題與CXF相同。我嘗試了所有這些方法,並最終放入了巨大的軟件包列表。最後放棄了,因爲我們決定使用Tomcat。

上面給出的列表只是apache類,您可能必須添加更多的依賴關係和更多的包。

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

+0

是Weblogic的與第三方XML庫巨大的罐子衝突的問題。因此,如果我們想避免jar衝突,最好的做法是使用JAX-WS(Weblogic webservices)的Weblogic實現。 – Pushkar 2011-03-09 17:45:24