मैं एक वर्ग XMLtoXML.java कहा जाता है और यह के तरीकों में से एक है ...java.lang.NoClassDefFoundError: org/dom4j/दस्तावेज
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
public Object[] process(Object data) {
String templateXML = null;
Object result[] = null;
String inputxml = null;
String templateNumber = null;
Iterator iterator = null;
String scenarioConfigUrl = null;
Node inputNode;
Node outputNode;
String subTemplateXML = null;
String outputXml = null;
if (delay != null) {
long time = Long.parseLong(delay);
try {
Thread.sleep(time);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
inputxml = (String) metadata.get(Constants.REQUEST);
if (inputxml == null) {
throw new NullRecordException("input data to XMLtoXML class in
metadata map is null");
}
Document inputXMLDocument = Dom4jUtils.getDocument(inputxml);
कोड ब्लॉक की अंतिम पंक्ति एक dom4j का उपयोग करता है Document.i में मेरे क्लासपाथ में dom4j-full.jar है। यदि मैं इस वर्ग को स्टैंडअलोन के रूप में चलाता हूं (ग्रहण में जावा एप्लिकेशन के रूप में चलाएं) तो यह ठीक काम करता है। जब मैं अपने क्लासपाथ में वेब एप्लिकेशंस और dom4j-full.jar के हिस्से के रूप में इस कक्षा को जोड़ता हूं।
मुझे निम्नलिखित अपवाद मिला।
java.lang.NoClassDefFoundError: org/dom4j/Document
at org.jaxen.dom4j.DocumentNavigator.getDocumentNode(DocumentNavigator.java:346)
at org.jaxen.expr.DefaultAbsoluteLocationPath.evaluate
(DefaultAbsoluteLocationPath.java:102)
at org.jaxen.expr.DefaultXPathExpr.asList(DefaultXPathExpr.java:102)
at org.jaxen.BaseXPath.selectNodesForContext(BaseXPath.java:674)
at org.jaxen.BaseXPath.selectNodes(BaseXPath.java:213)
at org.jaxen.BaseXPath.selectSingleNode(BaseXPath.java:234)
at org.dom4j.xpath.DefaultXPath.selectSingleNode(DefaultXPath.java:156)
at org.dom4j.tree.AbstractNode.selectSingleNode(AbstractNode.java:188)
at org.amdocs.convert.XMLtoXML.process(XMLtoXML.java:134)
at org.openadaptor.core.node.Node.processSingleRecord(Node.java:148)
at org.openadaptor.core.node.Node.process(Node.java:170)
at org.openadaptor.core.node.ProcessorNode.process(ProcessorNode.java:96)
at org.openadaptor.core.router.AbstractRouter.process(AbstractRouter.java:239)
at org.openadaptor.core.router.AbstractRouter.process(AbstractRouter.java:223)
at org.openadaptor.core.router.AbstractRouter.processResponse(AbstractRouter.java:249)
at org.openadaptor.core.router.AbstractRouter.process(AbstractRouter.java:239)
at org.openadaptor.core.router.AbstractRouter.process(AbstractRouter.java:223)
at org.openadaptor.core.router.AbstractRouter.process(AbstractRouter.java:180)
at org.openadaptor.core.adaptor.Adaptor.process(Adaptor.java:285)
at org.openadaptor.core.node.Node.callChainedMessageProcessor(Node.java:213)
at org.openadaptor.core.node.Node.process(Node.java:199)
at org.openadaptor.core.node.ReadNode.process(ReadNode.java:241)
at org.openadaptor.core.node.ReadNode.run(ReadNode.java:196)
at java.lang.Thread.run(Thread.java:619)
मैं भी यकीन है कि classpath पर dom4j जार वर्तमान। किसी के पास समस्या के बारे में कोई विचार है?
ठीक है, आपने अपने क्लासपाथ में dom4j-full.jar को शामिल करने का प्रयास कैसे किया है? ऐसा लगता है कि यह वास्तव में * नहीं है - या कम से कम 'जैक्सन' तक पहुंच योग्य नहीं है। आपके क्लासपाथ पर 'जैक्सन' कहां है? –
मेरी [क्लासफाइंडर] (http://www.adarshr.com/papers/classfinder) का उपयोग यह जानने के लिए करें कि कौन सी जार में एक दी गई कक्षा है। – adarshr
@ जोनस्केट डोम 4j शुरुआत में वहां प्रतीत होता है यदि आप स्टैकट्रैक देखते हैं, लेकिन जब जैक्सन 'दस्तावेज़' वर्ग को देखता है तो नामांकित करें। वह अजीब है! – javanna