You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@tuscany.apache.org by Hu hao <bn...@gmail.com> on 2007/01/31 06:32:07 UTC

How to use the SDO on webservice

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.

Re: How to use the SDO on webservice

Posted by Raymond Feng <en...@gmail.com>.
Hi,

I guess you're trying Tuscany's Web Service support for SCA. Which JDK are 
you using? I recently found there is a strange symptom with IBM JDK 1.5 SR3 
which gave me a similar exception. But it only happens with IBM JDK in 
non-debug mode. When I run the sample with SUN JDK (debug or non-debug mode) 
or IBM JDK in debug mode, it works fine.

Here's the JDK version I saw problems:

java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build pwi32dev-20061002a 
(SR3)
)
IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 
j9vmwi3223-2006100
1 (JIT enabled)
J9VM - 20060915_08260_lHdSMR
JIT  - 20060908_1811_r8
GC   - 20060906_AA)
JCL  - 20061002

Thanks,
Raymond

----- Original Message ----- 
From: "Hu hao" <bn...@gmail.com>
To: <tu...@ws.apache.org>
Sent: Tuesday, January 30, 2007 9:32 PM
Subject: How to use the SDO on webservice


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


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-user-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-user-help@ws.apache.org


Re: How to use the SDO on webservice

Posted by kelvin goodson <ke...@gmail.com>.
I'm not confident that this is the correct approach, not being familiar with
the databinding transformation,  but have you tried leaving your service
with the DataObject argument signature and casting your NameType instance to
a DataObject? This should work although there may be better approaches. By
default Tuscany generated interfaces don't extend DataObject, (and the SDO
spec doesn't require them to),  but generated classes do (and must) extend
the DataObject implementation.

Regards, Kelvin.

On 31/01/07, Hu hao <bn...@gmail.com> wrote:
>
> 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.
>
>