在將一個(gè)Tomcat項(xiàng)目遷移到JBOSS時(shí),出現(xiàn)了一點(diǎn)問題,就是配置好的eWebEditor不能用了,控制臺(tái)里報(bào)以下的錯(cuò)誤
Exception in JSP: /eWebEditor.jsp:54
經(jīng)過一番折騰后又發(fā)現(xiàn)了如下的出錯(cuò)提示
java.lang.NoClassDefFoundError: org/dom4j/xpath/DefaultXPath
后來發(fā)現(xiàn)是dom4j.jar版本不對(duì)造成的問題,JBOSS自帶的版本會(huì)出現(xiàn)上述的情況
解決方法如下:
將eWebEditor里自帶的dom4j.jar(476K)的文件覆蓋掉jboss4\lib\dom4j.jar(297K)即可,本文參考以下的材料
The error "java.lang.NoClassDefFoundError: org/dom4j/xpath/DefaultXPath" underlines important changes to the dom4j XML library. It usually happens when you try to call this library's methods in runtime. Older versions that shipped with JBoss used to include Jaxen, but for whatever reason, it is no longer included. Users must download dom4j.jar (now at version 1.6.1) and then jaxen-full.jar (FCS-1.0). Now how to resolve this problem is tricky:
1. Put dom4j-1.3.jar in {jboss}/lib. This version is known good.
2. Put dom4j-1.6.1.jar and jaxen-full.jar in {jboss}/server/default/lib. Remove the old dom4j JARs that may exist in that directory.
The reason the newer version cannot be used with JBoss is unknown, but it does not work. The older version is used when reading JBoss-specific config files. The newer version of dom4j kicks in when the default server is initialized. This allows development of applications using newer versions of the XML API.
http://prideafrica.blogspot.com/2006/05/javalangnoclassdeffounderror.html