部署Spring3和CXF的web项目到weblogic server 11g

eclipse里的web项目,用到了spring3和CXF,直接打成war包发布到weblogic,会报oracle.xml.parser.schema.XSDException: Duplicated definition for: 'identifiedType'的错误。该死的包冲突,本来应该用xercesImpl的jar包来解析spring的application-context.xml,但优先使用了weblogic自带的xmlparserv2的jar包。
在eclipse里新建一个Enterprise Application Project,在选择Java EE Module Dependencies的时候选择之前的web项目。在项目EarContent的目录META-INF下有一个weblogic-application.xml,修改成如下:
<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-application
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-application"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/javaee_5.xsd http://xmlns.oracle.com/weblogic/weblogic-application http://xmlns.oracle.com/weblogic/weblogic-application/1.3/weblogic-application.xsd">
<!--weblogic-version:10.3.6 -->
<wls:xml>
<wls:parser-factory>
<wls:saxparser-factory>com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl</wls:saxparser-factory>
<wls:document-builder-factory>com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl</wls:document-builder-factory>
<wls:transformer-factory>com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl</wls:transformer-factory>
</wls:parser-factory>
</wls:xml>
<wls:application-param>
<wls:param-name>webapp.encoding.default</wls:param-name>
<wls:param-value>UTF-8</wls:param-value>
</wls:application-param>
<wls:classloader-structure>
<wls:module-ref>
<wls:module-uri>bpmservice.war</wls:module-uri>
</wls:module-ref>
</wls:classloader-structure>
<wls:component-factory-class-name>org.springframework.jee.interfaces.SpringComponentFactory</wls:component-factory-class-name>
<wls:prefer-application-packages>
<wls:package-name>javax.wsdl.*</wls:package-name>
<wls:package-name>javax.jws.*</wls:package-name>
<wls:package-name>org.apache.xerces.*</wls:package-name>
</wls:prefer-application-packages>
</wls:weblogic-application>

让weblogic优先选择javax.wsdl.*、javax.jws.*和org.apache.xerces.*这些包,指定对xml解析用到的类(不设置也没关系),让之前的war包加入EAP的类加载结构。
编辑EAR项目属性,在Deployment Assembly里加入wsdl4j、xmlParseAPIs和xercesImpl这三个jar包。
通过EAR项目打出ear包,就可以成功部署到weblogic 11g了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值