2010-12-09 17 views
0

Lorsque j'essaie de créer un proxy de service Web dans Java, je reçois toujours. Je regarde au service Web mais cela fonctionne, je peux l'invoquer. Pourquoi je ne peux pas créer de proxy?java.lang.NoClassDefFoundError lors de la création du proxy

java.lang.NoClassDefFoundError: xxx/GetBibliografijeXml (wrong name: xxx/GetBibliografijeXML) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:620) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$100(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at oracle.j2ee.ws.common.processor.modeler.wsdl.SchemaAnalyzer.getValueClassBeanInfo(SchemaAnalyzer.java:465) at oracle.j2ee.ws.common.processor.modeler.wsdl.ComplexTypeBindingModeler.structuredType(ComplexTypeBindingModeler.java:142) at oracle.j2ee.ws.common.processor.modeler.wsdl.ComplexTypeBindingModeler.complexType(ComplexTypeBindingModeler.java:442) at oracle.j2ee.ws.common.processor.modeler.wsdl.LiteralSchemaTypeModeler.complexType(LiteralSchemaTypeModeler.java:495) at oracle.j2ee.ws.common.processor.modeler.wsdl.LiteralSchemaTypeModeler.schemaType(LiteralSchemaTypeModeler.java:373) at oracle.j2ee.ws.common.processor.modeler.wsdl.LiteralSchemaTypeModeler.globalElement(LiteralSchemaTypeModeler.java:446) at oracle.j2ee.ws.common.processor.modeler.wsdl.SchemaAnalyzer.schemaElementTypeToLiteralType(SchemaAnalyzer.java:403) at oracle.j2ee.ws.common.processor.modeler.wsdl.OperationModeler.getElementTypeToLiteralType(OperationModeler.java:588) at oracle.j2ee.ws.common.processor.modeler.wsdl.DocLiteralOperationModeler.buildInput(DocLiteralOperationModeler.java:527) at oracle.j2ee.ws.common.processor.modeler.wsdl.DocLiteralOperationModeler.buildOperation(DocLiteralOperationModeler.java:256) at oracle.j2ee.ws.common.processor.modeler.wsdl.OperationModeler.process(OperationModeler.java:93) at oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.processSOAPOperation(WSDLModeler.java:1086) at oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.processBindingOperation(WSDLModeler.java:1020) at oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.createNewPort(WSDLModeler.java:884) at oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.processPort(WSDLModeler.java:757) at oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.processService(WSDLModeler.java:671) at oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:396) at oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:215) at oracle.j2ee.ws.common.processor.config.ModelInfo.buildModel(ModelInfo.java:173) at oracle.j2ee.ws.common.processor.Processor.runModeler(Processor.java:72) at oracle.j2ee.ws.tools.wsa.AssemblerTool.run(AssemblerTool.java:95) at oracle.j2ee.ws.tools.wsa.WsdlToJavaTool.createProxy(WsdlToJavaTool.java:356) at oracle.j2ee.ws.tools.wsa.Util.createProxy(Util.java:838) at oracle.jdeveloper.webservices.model.proxy.ProxyGenerator.doGeneration(ProxyGenerator.java:553) at oracle.jdeveloper.webservices.model.proxy.ProxyGenerator.generateImpl(ProxyGenerator.java:365) at oracle.jdeveloper.webservices.model.proxy.ProxyGenerator.mav$generateImpl(ProxyGenerator.java:77) at oracle.jdeveloper.webservices.model.proxy.ProxyGenerator$1ThrowingRunnable.run(ProxyGenerator.java:206) at oracle.jdeveloper.webservices.model.GeneratorUI$GeneratorAction.run(GeneratorUI.java:446) at oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:551) at java.lang.Thread.run(Thread.java:595)

Répondre

1

Eh bien, il semble que quelque chose utilise le mauvais cas:

java.lang.NoClassDefFoundError: xxx/GetBibliografijeXml 
    (wrong name: xxx/GetBibliografijeXML) 

Notez le boîtier de "XML".

Vérifiez partout où le nom est utilisé et assurez-vous que le boîtier est cohérent partout. Est-ce que la classe est autogérée, ou celle que vous avez écrite vous-même? Notez également que si vous utilisez un système d'exploitation insensible à la casse et que les classes sont chargées directement à partir du disque (sans provenir d'un fichier JAR, etc.), il se peut que vous trouviez un ancien fichier de classe. ne sera pas capable d'avoir deux classes dont les noms diffèrent seulement dans le cas d'un tel système de fichiers, car les fichiers de classe vont s'affronter. Si votre WSDL utilise les deux cas, il peut avoir généré deux classes, mais alors vous finissez avec un seul fichier sur le disque :(