首页 > 解决方案 > com.predic8.soamodel.TypeRefAccessException 在为 WSDL 创建 SOAP 请求模板时

问题描述

我有一个要求,我需要为 WSDL 中的特定操作创建肥皂 xml 请求模板。我正在使用膜 soa-modeljars 来实现这一点。 http://www.membrane-soa.org/soa-model-doc/1.4/java-api/create-soap-request-template.htm 对于不引用任何 xsd 的简单 WSDL,它工作得非常好。但是,一旦我尝试加载其中引用了 xsd 的 WSDL,它就会开始失败。以下是我收到的错误消息。

Exception in thread "main" com.predic8.soamodel.TypeRefAccessException: Could not find the referenced type 'PozSupplierIntDFF' in namespace 'http://xmlns.oracle.com/apps/flex/prc/poz/suppliers/supplierServiceV2/supplierContact/'.
   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
   at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
   at java.lang.reflect.Constructor.newInstance(Unknown Source)
   at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:83)
   at org.codehaus.groovy.reflection.CachedConstructor.doConstructorInvoke(CachedConstructor.java:77)
   at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrap.callConstructor(ConstructorSite.java:84)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:60)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:235)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:263)
   at com.predic8.schema.Schema.findType(Schema.groovy:240)
   at com.predic8.schema.Schema$findType$2.callCurrent(Unknown Source)
   at com.predic8.schema.Schema.getType(Schema.groovy:218)
   at com.predic8.schema.Schema$getType$1.call(Unknown Source)
   at com.predic8.wstool.creator.RequestTemplateCreator.createElement(RequestTemplateCreator.groovy:71)
   at com.predic8.wstool.creator.RequestTemplateCreator$createElement.call(Unknown Source)
   at com.predic8.schema.Element.create(Element.groovy:97)
   at com.predic8.schema.Element$create.call(Unknown Source)
   at com.predic8.schema.creator.AbstractSchemaCreator$_createSequence_closure1.doCall(AbstractSchemaCreator.groovy:61)
   at sun.reflect.GeneratedMethodAccessor173.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
   at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
   at groovy.lang.Closure.call(Closure.java:414)
   at groovy.lang.Closure.call(Closure.java:430)
   at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2040)
   at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2025)
   at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2066)
   at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
   at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
   at com.predic8.schema.creator.AbstractSchemaCreator.createSequence(AbstractSchemaCreator.groovy:60)
   at com.predic8.schema.creator.AbstractSchemaCreator$createSequence.call(Unknown Source)
   at com.predic8.schema.Sequence.create(Sequence.groovy:30)
   at com.predic8.schema.Sequence$create.call(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:94)
   at com.predic8.wstool.creator.RequestTemplateCreator$_createComplexType_closure2.doCall(RequestTemplateCreator.groovy:103)
   at com.predic8.wstool.creator.RequestTemplateCreator$_createComplexType_closure2.doCall(RequestTemplateCreator.groovy)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
   at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
   at groovy.lang.Closure.call(Closure.java:414)
   at groovy.lang.Closure.call(Closure.java:408)
   at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:147)
   at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:67)
   at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:931)
   at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:908)
   at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:168)
   at com.predic8.wstool.creator.RequestTemplateCreator.createComplexType(RequestTemplateCreator.groovy:102)
   at com.predic8.wstool.creator.RequestTemplateCreator$createComplexType$0.call(Unknown Source)
   at com.predic8.schema.ComplexType.create(ComplexType.groovy:94)
   at com.predic8.schema.ComplexType$create.call(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
   at com.predic8.wstool.creator.RequestTemplateCreator.createElement(RequestTemplateCreator.groovy:73)
   at com.predic8.wstool.creator.RequestTemplateCreator$createElement.call(Unknown Source)
   at com.predic8.schema.Element.create(Element.groovy:97)
   at com.predic8.schema.Element$create.call(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
   at com.predic8.schema.creator.AbstractSchemaCreator$_createSequence_closure1.doCall(AbstractSchemaCreator.groovy:61)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
   at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
   at groovy.lang.Closure.call(Closure.java:414)
   at groovy.lang.Closure.call(Closure.java:430)
   at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2040)
   at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2025)
   at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2066)
   at org.codehaus.groovy.runtime.dgm$163.invoke(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:274)
   at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
   at com.predic8.schema.creator.AbstractSchemaCreator.createSequence(AbstractSchemaCreator.groovy:60)
   at com.predic8.schema.creator.AbstractSchemaCreator$createSequence.call(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
   at com.predic8.schema.Sequence.create(Sequence.groovy:30)
   at com.predic8.schema.Sequence$create.call(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callSafe(AbstractCallSite.java:94)
   at com.predic8.wstool.creator.RequestTemplateCreator$_createComplexType_closure2.doCall(RequestTemplateCreator.groovy:103)
   at com.predic8.wstool.creator.RequestTemplateCreator$_createComplexType_closure2.doCall(RequestTemplateCreator.groovy)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
   at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
   at groovy.lang.Closure.call(Closure.java:414)
   at groovy.lang.Closure.call(Closure.java:408)
   at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:147)
   at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:67)
   at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:931)
   at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:908)
   at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:168)
   at com.predic8.wstool.creator.RequestTemplateCreator.createComplexType(RequestTemplateCreator.groovy:102)
   at com.predic8.wstool.creator.RequestTemplateCreator$createComplexType$0.call(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
   at com.predic8.schema.ComplexType.create(ComplexType.groovy:94)
   at com.predic8.schema.ComplexType$create.call(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
   at com.predic8.wstool.creator.RequestTemplateCreator.createElement(RequestTemplateCreator.groovy:67)
   at com.predic8.wstool.creator.RequestTemplateCreator$createElement.call(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
   at com.predic8.schema.Element.create(Element.groovy:97)
   at com.predic8.schema.Element$create.call(Unknown Source)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
   at com.predic8.wstool.creator.SOARequestCreator$_buildBody_closure3.doCall(SOARequestCreator.groovy:98)
   at com.predic8.wstool.creator.SOARequestCreator$_buildBody_closure3.doCall(SOARequestCreator.groovy)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
   at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
   at groovy.lang.Closure.call(Closure.java:414)
   at groovy.lang.Closure.call(Closure.java:408)
   at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:147)
   at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:67)
   at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:931)
   at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:908)
   at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:168)
   at com.predic8.wstool.creator.SOARequestCreator.buildBody(SOARequestCreator.groovy:83)
   at com.predic8.wstool.creator.SOARequestCreator.this$3$buildBody(SOARequestCreator.groovy)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
   at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:384)
   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
   at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:69)
   at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
   at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:166)
   at com.predic8.wstool.creator.SOARequestCreator$_createRequest_closure2.doCall(SOARequestCreator.groovy:78)
   at com.predic8.wstool.creator.SOARequestCreator$_createRequest_closure2.doCall(SOARequestCreator.groovy)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
   at java.lang.reflect.Method.invoke(Unknown Source)
   at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
   at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
   at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:294)
   at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
   at groovy.lang.Closure.call(Closure.java:414)
   at groovy.lang.Closure.call(Closure.java:408)
   at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:147)
   at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:67)
   at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:931)
   at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:908)
   at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:168)
   at com.predic8.wstool.creator.SOARequestCreator.createRequest(SOARequestCreator.groovy:74)
   at testdhananjay.testclass.main(testclass.java:61)

标签: javasoapwsdlsoamembrane-soa

解决方案


我有一个类似的问题。我调用了这个方法。

 ComplexType complexType = schema.getComplexType(e.getType().getLocalPart());

我遇到的问题是没有可用的复杂类型。如果您有一个 XSD 文件,您将获得两个模式。

final List<Schema> schemas = definitions.getSchemas(); // Deliver you two schemas

如果您浏览这些模式,您会看到您的 complexType 将在另一个模式中。

    for (final Schema schema : schemas) {

        System.out.println("Complextypes Numer: " + schema.getComplexTypes().size());
        for (final ComplexType c : schema.getComplexTypes()) {
            System.out.println("Complextypes: " + c.getName());
        }
    }

您需要正确的架构才能访问此类型。我希望这会帮助你和其他人。


推荐阅读