Posted on 2012-07-25 17:02
沙漠中的鱼 阅读(7491)
评论(0) 编辑 收藏 所属分类:
Java
当前开发了一个系统,在tomcat下运行正常,但是部署到weblogic下时,却出现了java.lang.NoClassDefFoundError: org/aspectj/weaver/tools/PointcutPrimitive异常,经过查询,原来是当前系统和weblogic类库中都存在存类,超成包冲突的情况。如遇到此类情况,可以通过构建部署ear包,在weblogic-application.xml通过配置优先加载本项目中的包来处理。
在ear工程下的web-info文件夹下,添加两个文件application.xml和weblogic-application.xml。
application.xml文件内容如下:<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE application PUBLIC
"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
"http://java.sun.com/dtd/application_1_3.dtd">
<application>
<display-name>kubpwl</display-name>
<module>
<web>
<web-uri>kubpwl.war</web-uri>
<context-root>kubpwl</context-root>
</web>
</module>
</application>
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:application-param>
<wls:param-name>webapp.encoding.default</wls:param-name>
<wls:param-value>UTF-8</wls:param-value>
</wls:application-param>
<wls:prefer-application-packages>
<wls:package-name>org.aspectj.weaver.tools.*</wls:package-name>
<wls:package-name>javax.jws.*</wls:package-name>
</wls:prefer-application-packages>
</wls:weblogic-application>
prefer-application-packages 表示优先加载项目lib下的包。