2013-04-04 1 views
0

Je suis en train d'exécuter une application java où je reçois l'erreur suivante: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) 

Mais la méthode getNode() est présent dans le code. Des indices indiquant pourquoi je vois cette erreur?

J'ai une classe enfant OfferReader.java qui appelle getNode() de super classe.

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

et classe parente OfferReaderParent.java a la signature de la méthode ci-dessous:

public Node getNode() { 
     return node; 
    } 

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

en prenant cet argument? et est-ce la seule version de cette classe dans le CLASSPATH? – DataNucleus

+0

Veuillez indiquer comment vérifier les différences entre les versions de fichiers de CLASSPATH. – user179516

+1

Pouvez-vous s'il vous plaît poster la signature de cette méthode, et la façon dont vous l'appelez aussi? –

Répondre

0

Bien que ce poste est assez vieux, je réponds à cette question que quelqu'un pourrait avoir même problème que ci-dessus et correspond à une scénario que je luttais avec.

Je faisais face à un problème similaire, qui, en y regardant de plus près, avait deux classes identiques dans deux noms de paquets identiques bien que sous différents modules. Par exemple, Supposons que vous ayez deux projets un client JAVA et un client Web déployés sur votre serveur dans le même fichier EAR.

JavaClient >> test.java.somepackage.SomeClass

WebClient >> test.java.somepackage.SomeClass

both packaged within TestProjectEAR.ear

Dans ce cas, si vous avez déployé votre projet sur votre serveur, serveur peut essayer de chercher des méthodes dans la mauvaise classe qui ont le même nom, ce qui provoque java.lang.NoSuchMethodError.

J'espère que cela pourrait aider certaines personnes qui pourraient venir ici à chercher des réponses. :)

Questions connexes