Groovy - Ambigu la surcharge de méthode pour la méthode
J'ai vérifié les forums déjà, trouver quelques conseils sur ce problème, mais aucun de correspondre exactement à la mienne.
J'ai eu cette exception juste après l'appel de WSDLParse.méthode d'analyse.
En passant , je suis en train de mettre à jour mon Groovy version 2.2.1 2.4.3, dois-je raté quelque chose?
Merci pour vos conseils
Ps: C'est le message d'exception, vous trouverez ci-dessous toutes les stacktrace.
groovy.lang.GroovyRuntimeException: Ambigu la surcharge de méthode pour la méthode com.predic8.schéma.Élément#setType.
Ne peut pas résoudre la méthode à invoquer pour [null] en raison du chevauchement des prototypes entre:
[la classe javax.xml.espace de noms.QName]
[classe groovy.xml.QName]
groovy.lang.GroovyRuntimeException: Ambiguous method overloading for method com.predic8.schema.Element#setType.
Cannot resolve which method to invoke for [null] due to overlapping prototypes between:
[class javax.xml.namespace.QName]
[class groovy.xml.QName]
at groovy.lang.MetaClassImpl.chooseMostSpecificParams(MetaClassImpl.java:3238)
at groovy.lang.MetaClassImpl.chooseMethodInternal(MetaClassImpl.java:3191)
at groovy.lang.MetaClassImpl.chooseMethod(MetaClassImpl.java:3134)
at groovy.lang.MetaClassImpl.getNormalMethodWithCaching(MetaClassImpl.java:1369)
at groovy.lang.MetaClassImpl.getMethodWithCaching(MetaClassImpl.java:1284)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1054)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1016)
at org.codehaus.groovy.runtime.metaclass.MultipleSetterProperty.setProperty(MultipleSetterProperty.java:52)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:2663)
at groovy.lang.MetaClassImpl.setProperty(MetaClassImpl.java:3746)
at com.predic8.soamodel.XMLElement.setProperty(XMLElement.groovy)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.setGroovyObjectProperty(ScriptBytecodeAdapter.java:530)
at com.predic8.schema.Element.parseAttributes(Element.groovy:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.ja
va:207)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
at com.predic8.soamodel.XMLElement.parse(XMLElement.groovy:40)
at com.predic8.soamodel.XMLElement$parse$0.call(Unknown Source)
at com.predic8.schema.Schema.parseChildren(Schema.groovy:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.ja
va:207)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:179)
at com.predic8.soamodel.XMLElement.parse(XMLElement.groovy:45)
at com.predic8.soamodel.XMLElement$parse$0.call(Unknown Source)
at com.predic8.wsdl.Types.parseChildren(Types.groovy:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.ja
va:207)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:179)
at com.predic8.soamodel.XMLElement.parse(XMLElement.groovy:45)
at com.predic8.soamodel.XMLElement$parse$0.call(Unknown Source)
at com.predic8.wsdl.Definitions.parseChildren(Definitions.groovy:220)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.ja
va:207)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:179)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:177)
at com.predic8.soamodel.XMLElement.parse(XMLElement.groovy:45)
at com.predic8.soamodel.XMLElement$parse$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:130)
at com.predic8.wsdl.WSDLParser.parseLocal(WSDLParser.groovy:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.ja
va:207)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:56)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:169)
at com.predic8.soamodel.AbstractParser.parse(AbstractParser.groovy:34)
at com.predic8.wsdl.WSDLParser.super$2$parse(WSDLParser.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:324)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1207)
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnSuperN(ScriptBytecodeAdapter.java:130)
at com.predic8.wsdl.WSDLParser.parse(WSDLParser.groovy:24)
at com.predic8.wsdl.WSDLParser$parse.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:110)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:122)
at ESBWsdlRequest.<init>(ESBWsdlRequest.groovy:23)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:77)
at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java
:102)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:57)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:232)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:268)
at YOKSIS_OGRENCI_SIL_in.run(YOKSIS_OGRENCI_SIL_in.groovy:2)
at groovy.util.GroovyScriptEngine.run(GroovyScriptEngine.java:589)
at com.fibabanka.esi.xslt.ESBGroovyEngine.execute(ESBGroovyEngine.java:21)
at com.fibabanka.esi.xslt.Transformer.transformGroovy(Transformer.java:102)
at com.fibabanka.esi.xslt.Transformer.transformIn(Transformer.java:63)
at com.fibabanka.esi.xslt.XsltProcessor.processBag(XsltProcessor.java:92)
at com.fibabanka.esi.common.GenericProcessor.processTypeBag(GenericProcessor.java:27)
at com.fibabanka.esi.common.GenericProcessor.process(GenericProcessor.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:340)
at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:237)
at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:168)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:322)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:213)
at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:117)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150)
at org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:71)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
at org.apache.camel.component.seda.SedaConsumer.sendToConsumers(SedaConsumer.java:248)
at org.apache.camel.component.seda.SedaConsumer.doRun(SedaConsumer.java:160)
at org.apache.camel.component.seda.SedaConsumer.run(SedaConsumer.java:131)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Je n'ai pas d'élément ni propety. Je n'ai pas utiliser n'importe quel Nom de classe dans mon script.
C'est mon groovy fichier de script->
import groovy.time.BaseDuration.From;
import groovy.util.XmlParser;
import groovy.util.XmlSlurper;
import groovy.xml.MarkupBuilder;
import groovy.xml.XmlUtil;
import java.io.StringWriter;
import com.predic8.wsdl.Definitions;
import com.predic8.wsdl.WSDLParser;
import com.predic8.wstool.creator.RequestTemplateCreator;
import com.predic8.wstool.creator.SOARequestCreator;
class ESBWsdlParser {
String formTemplate;
String requestSoapXml;
public ESBWsdlRequest(String wsdlFile,String operationName) {
File file = new File(wsdlFile);
println file.getAbsolutePath();
WSDLParser parser = new WSDLParser();
Definitions wsdl = parser.parse(wsdlFile);
StringWriter writer = new StringWriter();
SOARequestCreator creator = new SOARequestCreator(wsdl, new RequestTemplateCreator(), new MarkupBuilder(writer));
//creator.createRequest(PortType name, Operation name, Binding name);
creator.createRequest(null, operationName, null);
formTemplate = writer.toString();
}
public String resolveName(c){
String[] arParts = c.name().toString().split("}");
if(arParts.length > 1){
return arParts[1];
}
return c.name;
}
OriginalL'auteur Eray Balat | 2015-06-04
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est qu'il y a deux objet-compatible et unique argument setType méthodes, et vous l'appeler avec
null
. Ou pour être plus précis, vous n'appelez pas la méthode, vous définissez la propriété, ce qui entraîne l'appel de la méthode.Maintenant, avant de Groovy 2.4 nous n'avons eu aucun soutien de la surcharge de cas. La méthode qui a été invoquée pour réellement aléatoire. En d'autres termes, vous avez eu de la chance si elle a toujours appelé la méthode adaptée à votre cas. Depuis Groovy 2.4, Groovy prend en charge surchargé setter, mais cela peut conduire à des cas, dans laquelle le poseur de surcharge provoque des exceptions comme celle ci-dessus. Chose que je considère bon, car il montre quelque chose qui pourrait avoir causé mystérieux des erreurs dans le passé.
Le correctif n'est pas aussi beau...
setType((QName) qname))
au lieu de l'affectation de propriété.... bien sûr, avec le Nom de la classe de votre choix. Vous pouvez utiliser de cours Keegan propose de vous soutenir dans ceEDIT: changé setElement à setType
Je pense que @blackdrag signifiait
Element.setType()
, et passetElement()
. Mais il a raison au sujet de la cause. Vous ne pouvez pas être l'appel de cette méthode, mais la Membrane est, dans le cadre de la substanceparse()
.ups, oui, merci pour le spotting
Merci beaucoup blackdrag comme toujours une réponse de votre part est normalement d'or. Nous avons trouvé où notre conflit qui se passait en exécutant le script ci-dessous. Nous avons trouvé rapidement un conflit était entre un utilisateur lib à user/.groovy/lib/jaxrpc.jar et notre jdk sur jre/lib/rt.jar . Retrait de la jaxrpc.jar a la bonne option dans notre scénario.
import javax.xml.namespace.QName Class klass = QName.class; URL location = klass.getResource('/' + klass.getName().replace('.', '/') + ".class"); println location
OriginalL'auteur blackdrag
Vous devriez probablement demandez SOA Membrane pour modifier Élément's
à quelque chose comme
pour résoudre l'ambiguïté. Dans le même temps, vous pouvez annuler manuellement vous-même, comme ce
Puisque vous êtes à l'aide de classes (je suppose que dans un projet compilé), vous pourriez probablement mettre la solution dans un bloc statique.
- Je mettre à jour soa-modèle à 1.5.3 mais il n'a pas de travail aussi...
OriginalL'auteur Keegan
De mise à niveau pour 1.6.0. E. g. pour le script de build Gradle:
OriginalL'auteur Peter Keller