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
> 
> 

Reply via email to