当我尝试在java中创建Web服务代理时,我总是得到。我期待Web服务,但它可以工作,我可以调用它。为什么我不能创建代理?
java.lang.NoClassDefFoundError: XXX / GetBibliografijeXml (错误的名字: XXX / GetBibliografijeXML) 在 java.lang.ClassLoader.defineClass1(母语 方法)at 需要java.lang.ClassLoader.defineClass(ClassLoader.java:620) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 在 java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 在 java.net.URLClassLoader.access $ 100(URLClassLoader.java:56) 在 java.net.URLClassLoader的$ 1.run(URLClassLoader.java:195) 在 java.security.AccessController.doPrivileged(母语 方法)at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:306) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:251) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.SchemaAnalyzer.getValueClassBeanInfo(SchemaAnalyzer.java:465) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.ComplexTypeBindingModeler.structuredType(ComplexTypeBindingModeler.java:142) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.ComplexTypeBindingModeler.complexType(ComplexTypeBindingModeler.java:442) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.LiteralSchemaTypeModeler.complexType(LiteralSchemaTypeModeler.java:495) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.LiteralSchemaTypeModeler.schemaType(LiteralSchemaTypeModeler.java:373) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.LiteralSchemaTypeModeler.globalElement(LiteralSchemaTypeModeler.java:446) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.SchemaAnalyzer.schemaElementTypeToLiteralType(SchemaAnalyzer.java:403) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.OperationModeler.getElementTypeToLiteralType(OperationModeler.java:588) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.DocLiteralOperationModeler.buildInput(DocLiteralOperationModeler.java:527) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.DocLiteralOperationModeler.buildOperation(DocLiteralOperationModeler.java:256) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.OperationModeler.process(OperationModeler.java:93) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.processSOAPOperation(WSDLModeler.java:1086) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.processBindingOperation(WSDLModeler.java:1020) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.createNewPort(WSDLModeler.java:884) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.processPort(WSDLModeler.java:757) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.processService(WSDLModeler.java:671) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.internalBuildModel(WSDLModeler.java:396) 在 oracle.j2ee.ws.common.processor.modeler.wsdl.WSDLModeler.buildModel(WSDLModeler.java:215) 在 oracle.j2ee.ws.common.processor.config.ModelInfo.buildModel(ModelInfo.java:173) 在 oracle.j2ee.ws.common.processor.Processor.runModeler(Processor.java:72) 在 oracle.j2ee.ws.tools.wsa.AssemblerTool.run(AssemblerTool.java:95) 在 oracle.j2ee.ws.tools.wsa.WsdlToJavaTool.createProxy(WsdlToJavaTool.java:356) 在 oracle.j2ee.ws.tools.wsa.Util.createProxy(Util.java:838) 在 oracle.jdeveloper.webservices.model.proxy.ProxyGenerator.doGeneration(ProxyGenerator.java:553) 在 oracle.jdeveloper.webservices.model.proxy.ProxyGenerator.generateImpl(ProxyGenerator.java:365) 在 oracle.jdeveloper.webservices.model.proxy.ProxyGenerator.mav $ generateImpl(ProxyGenerator.java:77) 在 oracle.jdeveloper.webservices.model.proxy.ProxyGenerator $ 1ThrowingRunnable.run(ProxyGenerator.java:206) 在 oracle.jdeveloper.webservices.model.GeneratorUI $ GeneratorAction.run(GeneratorUI.java:446) 在 oracle.ide.dialogs.ProgressBar.run(ProgressBar.java:551) 在 java.lang.Thread.run(Thread.java:595)
答案 0 :(得分:1)
好吧,看起来有些东西使用了错误的情况:
java.lang.NoClassDefFoundError: xxx/GetBibliografijeXml
(wrong name: xxx/GetBibliografijeXML)
请注意“XML”的大写。
检查所有名称的使用情况,并确保案例在任何地方都一致。该课程是自动生成的课程,还是您自己编写的课程?
另外请记住,如果你是一个不区分大小写的操作系统,并且直接从磁盘加载类(没有来自jar文件等),它可能会找到一个旧的类文件 - 你赢了'只能在这样的文件系统上有两个名称不同的类,因为类文件会发生冲突。如果你的WSDL使用两种情况,它可能有生成两个类,但是你最终只能在磁盘上有一个文件:(