classpath - JDOM + Jaxen + Websphere 7 = java.lang.NoClassDefFoundError: org.jaxen.BaseXPath -
i use jdom in webapp project. works fine. want add stuff using xpath, if try work xpath, exception:
com.ibm.ws.webcontainer.servlet.servletwrapper service srve0068e: uncaught exception created in 1 of service methods of servlet myservlet in application myprojectear. exception created : java.lang.noclassdeffounderror: org.jaxen.basexpath @ java.lang.j9vminternals.verifyimpl(native method) @ java.lang.j9vminternals.verify(j9vminternals.java:72) @ java.lang.j9vminternals.initialize(j9vminternals.java:134) @ java.lang.class.fornameimpl(native method) @ java.lang.class.forname(class.java:136) @ org.jdom.xpath.xpath.newinstance(xpath.java:126) @ org.jdom.xpath.xpath.selectnodes(xpath.java:337) [..] caused by: java.lang.classnotfoundexception: org.jaxen.basexpath @ java.net.urlclassloader.findclass(urlclassloader.java:421) @ com.ibm.ws.bootstrap.extclassloader.findclass(extclassloader.java:150) @ java.lang.classloader.loadclass(classloader.java:652) @ com.ibm.ws.bootstrap.extclassloader.loadclass(extclassloader.java:90) @ java.lang.classloader.loadclass(classloader.java:618) @ com.ibm.ws.classloader.protectionclassloader.loadclass(protectionclassloader.java:62) @ com.ibm.ws.classloader.protectionclassloader.loadclass(protectionclassloader.java:58) @ com.ibm.ws.classloader.compoundclassloader.loadclass(compoundclassloader.java:540) @ java.lang.classloader.loadclass(classloader.java:618) ... 35 more
the jaxen.jar in classpath, , org.jaxen.basexpath class there fine. why websphere not finding it? works other libraries have there. when googling found this, says has conflicting version somewhere , should make sure jars web app directory have precedence. in eclise' built path configuration set web app libraries above websphere library (only src dir above web app libs), did not change anything. unfortunatelly did not understand part ear seems important...?
update: in meantime this gave me new clue. found on websphere's administration console classpath , list jars considered class loaders. these quite number , searched them little grep , unzip -l magic , figured file /opt/ibm/websphere/portalserver/wcm/prereq.wcm/wcm/shared/app/jdom.jar contains jdom (without jaxen stuff). maybe jdom jar loaded, jaxen in incompatible version loaded lib directory?
additionally found in websphere's administration console "parent first/last" setting application, grayed out! can't switch parent last :-(.
what can find , fix problem?
Comments
Post a Comment