[英]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.