It seems that there is a method name mismatch. > @WebMethod(operationName = "OrteStartWith", action = > "http://www.mathertel.de/OrteLookup/OrteStartWith") > public String orteStartWith(String prefix);
You try to customize the operation name to be OrteStartWith for the method named as orteStartWith. Can you try the same name for now? Thanks, Raymond ________________________________________________________________ Raymond Feng [email protected] Apache Tuscany PMC member and committer: tuscany.apache.org Co-author of Tuscany SCA In Action book: www.tuscanyinaction.com Personal Web Site: www.enjoyjava.com ________________________________________________________________ On Jun 1, 2010, at 3:07 AM, Eneko Fernández wrote: > Hi all, > > Its my first time dealing with groovy and Ive been assigned to reproduce in > groovy an example (100% working in pure java) wich involves reference to an > external ws and a component with its implementation in groovy but it doesnt > work :( Im using the tuscany java 1.6 > > The several files in the example are given next: > > SCA Composite file > > <composite xmlns="http://www.osoa.org/xmlns/sca/1.0" > xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" > targetNamespace="http://www.mathertel.de/OrteLookupSample" > name="ortelookup"> > <component name="OrtelookupServiceComponent"> > <tuscany:implementation.script > script="ortelookup/groovy/OrtelookupServiceComponent.groovy" /> > <reference name="orteLookupSoap"> > <interface.java > interface="ortelookup.groovy.OrteLookupSoap"/> > <binding.ws > > wsdlElement="http://www.mathertel.de/OrteLookup/#wsdl.port(OrteLookup/OrteLookupSoap)" > > uri="http://mathertel.de/AJAXEngine/S02_AJAXCoreSamples/OrteLookup.asmx" /> > </reference> > </component> > </composite> > > Inteface like this: > > @Remotable > @WebService(name = "orteLookupSoap", targetNamespace = > "http://www.mathertel.de/OrteLookup/") > public interface OrteLookupSoap { > > @WebMethod(operationName = "OrteStartWith", action = > "http://www.mathertel.de/OrteLookup/OrteStartWith") > public String orteStartWith(String prefix); > > @WebMethod(operationName = "GetPrefixedEntries", action = > "http://www.mathertel.de/OrteLookup/GetPrefixedEntries") > public String getPrefixedEntries(String prefix); > > } > > Component implementation in groovy : > > package ortelookup.groovy; > > > import org.osoa.sca.annotations.Reference; > import org.osoa.sca.annotations.Service; > > @Service(OrteLookupSoap.class) > public class OrtelookupServiceComponent implements OrteLookupSoap { > @Reference(name="orteLookupSoap", required=true) > OrteLookupSoap orteLookupSoap; > > public OrteLookupSoap getOrteLookupSoap() { > System.out.println("Got Injected OrteLookupSoap"); > return orteLookupSoap; > } > > public void setOrteLookupSoap(OrteLookupSoap orteLookupSoap) { > System.out.println("Injected OrteLookupSoap"); > this.orteLookupSoap = orteLookupSoap; > } > > public String getPrefixedEntries(String prefix) { > // TODO Auto-generated method stub > return orteLookupSoap.getPrefixedEntries(prefix); > } > > public String orteStartWith(String prefix) { > // TODO Auto-generated method stub > return orteLookupSoap.orteStartWith(prefix); > } > } > > And the Java SCA client > > public static final void main(String[] args) throws Exception { > > SCADomain scaDomain = > SCADomain.newInstance("ortelookup.composite"); > OrteLookupSoap lookupService > =(OrteLookupSoap)scaDomain.getService(OrteLookupSoap.class, > "OrtelookupServiceComponent"); > String value = lookupService.orteStartWith("b"); > System.out.println (value); > scaDomain.close(); > > } > > The result is a beautiful exception saying: > > Caused by: java.lang.NoSuchMethodException: No signature of method: > org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.OrteStartWith() is > applicable for argument types: (java.lang.String) values: [b] > at > org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.invokeImpl(GroovyScriptEngineImpl.java:358) > at > org.codehaus.groovy.jsr223.GroovyScriptEngineImpl.invokeFunction(GroovyScriptEngineImpl.java:159) > at > org.apache.tuscany.sca.implementation.script.ScriptInvoker.doInvoke(ScriptInvoker.java:60) > at > org.apache.tuscany.sca.implementation.script.ScriptInvoker.invoke(ScriptInvoker.java:76) > at > org.apache.tuscany.sca.extension.helper.impl.ImplementationImplementationProvider$InvokerProxy.invoke(ImplementationImplementationProvider.java:90) > at > org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:60) > at > org.apache.tuscany.sca.binding.sca.impl.SCABindingInvoker.invoke(SCABindingInvoker.java:61) > at > org.apache.tuscany.sca.core.databinding.wire.PassByValueInterceptor.invoke(PassByValueInterceptor.java:60) > at > org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:349) > at > org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:193) > ... 11 more > > Please, any little suggestion will be appreciated > >
