1.Cannot create a secure XMLInputFactory
问题描述:CXF 2.7.7,SOAP服务,在jetty可顺利执行,部署至Weblogic 12C报错
异常信息:
java.lang.RuntimeException: Cannot create a secure XMLInputFactory
at org.apache.cxf.staxutils.StaxUtils.createXMLInputFactory(StaxUtils.java:312)
at org.apache.cxf.staxutils.StaxUtils.getXMLInputFactory(StaxUtils.java:262)
at org.apache.cxf.staxutils.StaxUtils.createXMLStreamReader(StaxUtils.java:1408)
问题原因:包冲突
解决方案:在weblogic.xml中排查冲突包
<prefer-application-packages>
<package-name>com.ctc.wstx.*</package-name>
<package-name>org.codehaus.stax2.*</package-name>
</prefer-application-packages>
如果在为使用weblogic也报此问题,确认下工程中是否有这两个jar包
stax2-api-3.1.4.jar
woodstox-core-asl-4.4.1.jar
2.Servlet: "jersey" failed to preload on startup in Web application:"
问题描述:基于CXF开发的JAX-RS web services(restful),部署至weblogic报错
异常信息:
weblogic.application.ModuleException: [HTTP:101216]Servlet: "jersey" failed to preload on startup in Web application: "xxx.war".
com.sun.jersey.spi.inject.Errors$ErrorMessagesException
at com.sun.jersey.spi.inject.Errors.processErrorMessages(Errors.java:170)
at com.sun.jersey.spi.inject.Errors.postProcess(Errors.java:137)
at com.sun.jersey.spi.inject.Errors.processWithErrors(Errors.java:203)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:702)
at com.sun.jersey.server.impl.application.WebApplicationImpl.initiate(WebApplicationImpl.java:691)
at com.sun.jersey.spi.container.servlet.ServletContainer.initiate(ServletContainer.java:438)
问题原因:weblogic中未找到jersey的相关jar包
问题解决:
1)在weblogic.xml中加入如下配置,确认目录${WL_HOME}/common/deployable-libraries).中是否有这两个包
<library-ref>
<library-name>jersey-bundle</library-name>
<specification-version>1.1.1</specification-version>
<implementation-version>1.1.5.1</implementation-version>
</library-ref>
<library-ref>
<library-name>jsr311-api</library-name>
<specification-version>1.1.1</specification-version>
<implementation-version>1.1.1</implementation-version>
</library-ref>
2)将javax.ws.rs_1.0.0.0_1-1-1.jar,jersey-bundle_1.0.0.0_1-1-5-1.jar添加到工程的lib中