簡體   English   中英

java.lang.NoSuchMethodError:

[英]java.lang.NoSuchMethodError:

我正在嘗試運行Java應用程序,但出現以下錯誤:

java.lang.NoSuchMethodError: com/crossview/commerce/dataload/reader/OfferReader.getNode()Lorg/w3c/dom/Node;
    at com.wkus.taa.commerce.dataload.reader.OfferReader.init(OfferReader.java:57)
    at com.ibm.commerce.foundation.dataload.AbstractBusinessObjectLoader.initializeDataReaders(AbstractBusinessObjectLoader.java:1220)
    at com.ibm.commerce.foundation.dataload.AbstractBusinessObjectLoader.init(AbstractBusinessObjectLoader.java:353)
    at com.ibm.commerce.foundation.dataload.BusinessObjectLoader.init(BusinessObjectLoader.java:65)
    at com.ibm.commerce.foundation.dataload.DataLoaderMain.execute(DataLoaderMain.java:428)
    at com.ibm.commerce.foundation.dataload.DataLoaderMain.main(DataLoaderMain.java:213)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:48)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
    at java.lang.reflect.Method.invoke(Method.java:600)
    at com.ibm.ws.bootstrap.WSLauncher.main(WSLauncher.java:260)

但是方法getNode()存在於代碼中。 有任何線索為什么我會看到此錯誤?

我有一個子類OfferReader.java,它從超類調用getNode()。

public void init() throws DataLoadException {
        super.init();
        node = super.getNode();
    }

父類OfferReaderParent.java具有以下方法簽名:

public Node getNode() {
        return node;
    }

    public void setNode(Node node) {
        this.node = node;
    }

盡管這篇文章已經很老了,但我正在回答這個問題,因為有人可能遇到與上述相同的問題,並且符合我所苦苦掙扎的情況。

我面臨着一個類似的問題,仔細檢查后發現,雖然兩個模塊的模塊不同,但兩個相同的程序包名稱中有兩個相同的類。 例如,假設您有兩個項目,即JAVA客戶端和Web客戶端部署到打包在同一EAR文件中的服務器上。

JavaClient >> test.java.somepackage.SomeClass

WebClient >> test.java.somepackage.SomeClass

都打包在TestProjectEAR.ear中

在這種情況下,如果您在服務器上部署了項目,則服務器可能會嘗試在錯誤的類中查找具有相同名稱的方法,從而導致java.lang.NoSuchMethodError。

我希望這可以幫助一些可能來這里尋求答案的人。 :)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM