2010-12-09 52 views
0

当我尝试在java中创建Web服务代理时,我总是得到。我期待web服务,但它的工作,我可以调用它。为什么我不能创建代理?创建代理时发生java.lang.NoClassDefFoundError

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)

回答

1

嗯,这看起来像是正在使用错误的情况下:

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

注 “XML” 的外壳。

到处检查名称是否被使用,并确保案件在任何地方都一致。该课程是自动生成的,还是自己编写的?

另外请记住,如果您在不区分大小写的操作系统上,并且类正在从磁盘直接加载(而不是来自jar文件等),则可能会找到旧的类文件 - 您赢了因为类文件会发生冲突,所以只能在这种文件系统上使用名称不同的两个类。如果你的WSDL同时使用这两种情况,它可能会有生成两个类,但是最后只能得到一个文件在磁盘上:(

相关问题