此问题是当项目从weblogic8升级到weblogic10,部署应用时所出现的,百度上搜基本上没看到什么帮助,上谷歌搜却有很多,所以平时还是要多用谷歌啊。。。
看到一个连接:http://stackoverflow.com/questions/854711/saxon-xmlbeans-tomcat ,因为是英文。。,本人没看太懂,只通过这句However, I would check the JAR files within the latest versions of XMLBeans and Saxon first。。,似乎是让我更新有关xmlbeans的jar包,于是更新了几个jar包,发现果然没报错,以为事情得到圆满结果。悲剧的是。。,几天后,同事也部署同一个应用时,也报了和我之前遇到的一模一样的错,于是乎,我把我本地的jar包发给同事,同事重新部署还是报同样的错。。,我又糊涂了,本人的Jar包和同事的一样,怎么我的不报错了而同事的却接着报错。只好果断上谷歌。又发现一个连接:
http://mail-archives.apache.org/mod_mbox/xml-xmlbeans-dev/200407.mbox/%3CA1A06E52-E253-11D8-965E-003065DC754C@apache.org%3E。综合这两个连接,我才恍然大悟,原来是jaxen-1.1-beta-2.jar在坏事,此包下有个 MANIFEST.MF文件,打开后可以发现
Extension-List: dom4j-core,jdom,xml-apis,xerces,junit这行,在weblogic10中已经不能用逗号分隔jar包了,要用空格符,所以weblogic10部署应用时会报java.lang.IllegalArgumentException: dom4j-core,jdom,xml-apis,xerces,junit-Extension-Name,到官网上下载最新的jaxen-1.1.6.jar,然后在eclipse中去掉jaxen-1.1-beta-2.jar,导入jaxen-1.1.6.jar,结果发现还是报错。没想明白,却莫名其妙的在weblogic10建的domain下发现jaxen-1.1-beta-2.jar的身影,在把工程下lib目录的jaxen-1.1-beta-2.jar删掉后,并且把domain下发现的jaxen-1.1-beta-2.jar也删掉,再次重新部署,发现问题解决。我猜想可能是因为部署应用时,weblogic10会加载工程下的lib目录到domain,weblogic10再从此domain中加载jar包,所以报错。即使在eclipse中并没有把此jar中引用进来,所以weblogic10还是报错。
所以解决此异常的步骤是:1:删掉应用下lib目录中的jaxen-1.1-beta-2.jar,替换成jaxen-1.1.6.jar;2:删掉domain下的jaxen-1.1-beta-2.jar,目录位置是:weblogic10\user_projects\domains\你的domain\servers\AdminServer\tmp\_WL_user\prpall\fmchw2\war\WEB-INF\lib;3.重启服务,再次部署,ok
参考连接:
1.http://stackoverflow.com/questions/854711/saxon-xmlbeans-tomcat
2.http://mail-archives.apache.org/mod_mbox/xml-xmlbeans-dev/200407.mbox/%3CA1A06E52-E253-11D8-965E-003065DC754C@apache.org%3E
(ps:所以本人发的那个帖子http://bbs.csdn.net/topics/390364864?page=1#new_post中说的方法是错误的,以此为准,亲)