我正在尝试运行一个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;
}发布于 2015-05-28 10:07:26
虽然这篇文章已经很老了,但我正在回答这个问题,因为有人可能有同样的问题,并且符合我一直在努力解决的问题。
我面临着一个类似的问题,仔细检查后发现,在两个相同的包名中有两个相同的类,尽管在不同的模块下。例如,假设您有两个项目-- JAVA客户端和Web客户端--部署到打包在同一个EAR文件中的服务器上。
test.java.somepackage.SomeClass JavaClient >> >> test.java.somepackage.SomeClass WebClient >> >> 两者都打包在TestProjectEAR.ear中
在这种情况下,如果您已经在服务器上部署了项目,服务器可能会尝试在错误的类中查找具有相同名称的方法,从而导致java.lang.NoSuchMethodError。
我希望这能帮助到一些可能来这里寻找答案的人。:)
https://stackoverflow.com/questions/15817992
复制相似问题