2

xmlファイルを作成しようとしています。ファイルを作成すると、このエラーが発生します。私はそれが何であるかを本当に知りません。それは本当に奇妙なエラーです。ファイルは正しく作成されていますが、その中に何も書かれていません。

Exception in thread "AWT-EventQueue-0" java.lang.AbstractMethodError: gnu.xml.dom.DomDocument.getXmlStandalone()Z
    at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.setDocumentInfo(DOM2TO.java:377)
    at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:131)
    at com.sun.org.apache.xalan.internal.xsltc.trax.DOM2TO.parse(DOM2TO.java:98)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transformIdentity(TransformerImpl.java:683)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:727)
    at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.transform(TransformerImpl.java:340)
    at org.w3c.jigmonitor.controller.Controller.writePerformancesXmlFile(Controller.java:191)
    at org.w3c.jigmonitor.controller.Controller.actionPerformed(Controller.java:68)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6505)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6270)
    at java.awt.Container.processEvent(Container.java:2229)
    at java.awt.Component.dispatchEventImpl(Component.java:4861)
    at java.awt.Container.dispatchEventImpl(Container.java:2287)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    at java.awt.Container.dispatchEventImpl(Container.java:2273)
    at java.awt.Window.dispatchEventImpl(Window.java:2719)
    at java.awt.Component.dispatchEvent(Component.java:4687)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:703)
    at java.awt.EventQueue.access$000(EventQueue.java:102)
    at java.awt.EventQueue$3.run(EventQueue.java:662)
    at java.awt.EventQueue$3.run(EventQueue.java:660)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    at java.awt.EventQueue$4.run(EventQueue.java:676)
    at java.awt.EventQueue$4.run(EventQueue.java:674)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:673)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:244)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

これは私がxmlファイルを作成するために使用するコードです:

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
                    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

                    Document doc = docBuilder.newDocument();
                    Element rootElement = doc.createElement("performances");
                    doc.appendChild(rootElement);

                    Attr attr = doc.createAttribute("date");
                    attr.setValue(dateFormat.format(cal.getTime()).toString());
                    rootElement.setAttributeNode(attr);

                    //Uptime
                    Element uptime = doc.createElement("uptime");
                    rootElement.appendChild(uptime);

                    Element days = doc.createElement("days");
                    days.appendChild(doc.createTextNode(new Long(duptime).toString()));
                    uptime.appendChild(days);

                    Element hours = doc.createElement("hours");
                    hours.appendChild(doc.createTextNode(new Long(huptime).toString()));
                    uptime.appendChild(hours);

                    Element minutes = doc.createElement("minutes");
                    minutes.appendChild(doc.createTextNode(new Long(muptime).toString()));
                    uptime.appendChild(minutes);

                    Element seconds = doc.createElement("seconds");
                    seconds.appendChild(doc.createTextNode(new Long(suptime).toString()));
                    uptime.appendChild(seconds);

                    //TotalHitCount
                    Element totalhitcount = doc.createElement("totalhitcount");
                    totalhitcount.appendChild(doc.createTextNode(new Long(stats.gettotal_hit_count()).toString()));
                    rootElement.appendChild(totalhitcount);

                    //EmittedBytes
                    Element emittedbytes = doc.createElement("emittedbytes");
                    emittedbytes.appendChild(doc.createTextNode(new Long(stats.getemitted_bytes()).toString()));
                    rootElement.appendChild(emittedbytes);

                    //Avghitsec
                    Element avghitsec = doc.createElement("avghitsec");
                    avghitsec.appendChild(doc.createTextNode(new Float(stats.getavg_hit_sec()).toString()));
                    rootElement.appendChild(avghitsec);

                    //Avgbyteshit
                    Element avgbyteshit = doc.createElement("avgbyteshit");
                    avgbyteshit.appendChild(doc.createTextNode(new Long(stats.getavgbytes_hit()).toString()));
                    rootElement.appendChild(avgbyteshit);

                    //Avgbps
                    Element avgbps = doc.createElement("avgbps");
                    avgbps.appendChild(doc.createTextNode(new Long(stats.getavgbps()).toString()));
                    rootElement.appendChild(avgbps);

                    //Total Threads
                    Element totalthreads = doc.createElement("totalthreads");
                    totalthreads.appendChild(doc.createTextNode(new Long(stats.gettotal_threads()).toString()));
                    rootElement.appendChild(totalthreads);

                    //Idle Threads
                    Element idlethreads = doc.createElement("idlethreads");
                    idlethreads.appendChild(doc.createTextNode(new Long(stats.getidle_threads()).toString()));
                    rootElement.appendChild(idlethreads);

                    TransformerFactory transformerFactory = TransformerFactory.newInstance();
                    Transformer transfomer = transformerFactory.newTransformer();
                    DOMSource source = new DOMSource(doc);
                    StreamResult result = new StreamResult(new File("/home/mazzy/Scrivania/perfor_"+dateFormat.format(cal.getTime()).toString()+".xml"));

                    transfomer.transform(source, result);

トランスフォーマーメソッドでその例外が発生しました。このエラーが発生した理由は何ですか?

4

2 に答える 2

2

これは、コードを実行したときにクラスパス上のJARとコードをコンパイルしたときに、クラスパス上に異なるJARが存在することによって引き起こされるある種の構成の問題です。

于 2012-07-12T09:50:34.907 に答える
1

パブリッククラスAbstractMethodErrorはIncompatibleClassChangeErrorを拡張します

アプリケーションが抽象メソッドを呼び出そうとしたときにスローされます。通常、このエラーはコンパイラーによってキャッチされます。このエラーは、現在実行中のメソッドが最後にコンパイルされてから一部のクラスの定義が互換性なく変更された場合にのみ、実行時に発生する可能性があります。

実装jarが見つからないようです

于 2012-07-12T09:23:12.457 に答える