Hi ,
I am new to SDO. When I try to use SDO on webservice ,i got the
Exception :
-------------------------------------------------
org.apache.tuscany.spi.databinding.TransformationException: No path found
for the transformation
Context stack trace: [Target: org.apache.axiom.om.OMElement][Source: null]
at
org.apache.tuscany.core.databinding.impl.MediatorImpl.getTransformerChain(
MediatorImpl.java:168)
at org.apache.tuscany.core.databinding.impl.MediatorImpl.mediate(
MediatorImpl.java:83)
at
org.apache.tuscany.core.databinding.impl.Input2InputTransformer.transform(
Input2InputTransformer.java:151)
at
org.apache.tuscany.core.databinding.impl.Input2InputTransformer.transform(
Input2InputTransformer.java:47)
at org.apache.tuscany.core.databinding.impl.MediatorImpl.mediate(
MediatorImpl.java:95)
at org.apache.tuscany.core.databinding.impl.DataBindingInteceptor.transform
(DataBindingInteceptor.java:105)
at org.apache.tuscany.core.databinding.impl.DataBindingInteceptor.invoke(
DataBindingInteceptor.java:69)
at org.apache.tuscany.spi.wire.AbstractOutboundInvocationHandler.invoke(
AbstractOutboundInvocationHandler.java:60)
at org.apache.tuscany.core.wire.jdk.JDKOutboundInvocationHandler.invoke(
JDKOutboundInvocationHandler.java:121)
at $Proxy31.getGreetings1(Unknown Source)
at helloworld.ClientImpl.getGreetings1(ClientImpl.java:34)
at org.apache.jsp.index_jsp._jspService(index_jsp.java:115)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.jasper.servlet.JspServletWrapper.service(
JspServletWrapper.java:332)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
at org.apache.tuscany.runtime.webapp.TuscanyFilter.doFilter(
TuscanyFilter.java:58)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(
ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(
StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(
StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java
:105)
at org.apache.catalina.core.StandardEngineValve.invoke(
StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java
:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:869)
at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(
PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(
LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(
ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)
----------------------------------------------------
My code is
service:
public interface HelloWorldService {
public String getGreetings(String name);
public String getGreetings1(NameType name);
}
public class HelloWorldImpl implements HelloWorldService {
public String getGreetings1(NameType name) {
String firstName = name.getFirstName();
String lastName = name.getLastName();
return "Hello " + firstName + " " + lastName;
}
client:
public class ClientImpl implements Client {
private HelloWorldService helloWorldService;;
@Reference(name="helloWorldService",required=false)
public void setHelloWorldService(HelloWorldService helloWorldService) {
this.helloWorldService = helloWorldService;
}
public String getGreetings1(String firstName, String lastName) {
HelloworldFactory hwf = HelloworldFactoryImpl.INSTANCE;
NameType name = hwf.createNameType();
name.setFirstName("fddfdffd");
name.setLastName("erwe");
return helloWorldService.getGreetings1(name);
}
}
I have generated some *.class files using the XSD2Java tool and used
SDOUtil.registerStaticTypes(HelloworldFactory.class) in a servlet. When the
argument is DataObject, it will be ok.