2013-04-04 4 views
0

Я пытаюсь запустить приложение Java, где я получаю ошибку ниже:java.lang.NoSuchMethodError:

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; 
    } 
+0

принимая этот аргумент? и является ли это единственной версией этого класса в CLASSPATH? – DataNucleus

+0

Просьба указать, как проверить отличия версий файлов от CLASSPATH. – user179516

+1

Можете ли вы опубликовать подпись этого метода и то, как вы это называете? –

ответ

0

Хотя этот пост довольно старый, я отвечаю на этот вопрос, как кто-то может быть с той же проблемой, как и выше, соответствует сценарий, с которым я боролся.

Я столкнулся с аналогичной проблемой, которая, как было обнаружено, при ближайшем рассмотрении имела два одинаковых класса в двух одинаковых именах пакетов, хотя и под разными модулями. Например, скажем, у вас есть два проекта: клиент JAVA и веб-клиент, развернутый на ваш сервер, упакованный в один и тот же файл EAR.

JavaClient >> test.java.somepackage.SomeClass

WebClient >> test.java.somepackage.SomeClass

both packaged within TestProjectEAR.ear

В таком случае, если вы установили свой проект на сервере, сервер может попытаться искать методы в неправильном классе, которые оказывают такое же имя, что вызывает java.lang.NoSuchMethodError.

Надеюсь, это поможет некоторым людям, которые могут приехать сюда искать ответы. :)

Смежные вопросы