Thanks Raymond,
Ive changed to orteStartWith and I get something similar:
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)
... 2 more
Now the interface looks like:
@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);
}
Thanks,
Eneko
________________________________________
De: Raymond Feng [[email protected]]
Enviado el: martes, 01 de junio de 2010 19:00
Para: [email protected]
Asunto: Re: Error with tuscany 1.6, component implementation in groovy with ws
reference
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]<mailto:[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