tuscany-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kelvin goodson <kelvingood...@gmail.com>
Subject Re: WS bindings and SDO
Date Mon, 01 Jun 2009 12:40:18 GMT
Hi Sebastien,
  sorry, must have pressed send by accident and then lost the context.
 So the SDO spec doesn't say anything about Generated Factories such
as the EntityFactory that you use above.  That Factory is Tuscany
specific, and I'm sure other implementations have different ways of
doing things.

The proper SDO API way to create an instance of a generated SDO class
is to get hold of a DataFactory instance that knows about your
generated types.

I think we have now established that a properly configured SCA
environment with the fixes applied as above will now register your
metadata for you, in the form of your generated factory, and thereby
the interfaces/classes that the generated factory handles.

So if you were in the business of programatically creating an instance
of your generated classes directly you would want to call either of
the following DataFactory methods.

dataFactory.create(Laboratory.class);
or
dataFactory.create("http://eclipse.org/SCAExample1/src/resources/clinicalLaboratory",
"Laboratory");

If the dataFactory knows about your EntityFactory these calls will
result in instances of your generated classes.  If not then you'll get
an error. However, as we have seen, deserialization of an XML document
that references unregistered type systems will result in instances of
AnyTypeDataObject rather than fail.

Like I said earlier,  I'm not as familiar as I'd like to be with the
way that SCA uses SDO, and my guess is that much of the metadata
handling and instance creation is hidden from you, but if you needed
to use SDO directly, that's the way to do it.

Kelvin.



2009/6/1 Sebastián Groh <sebastiangroh@gmail.com>:
> Hello Kelvin,
>
>                     I appreciate your mail (it seems to be incompleted)
but
> I assume that I'm not using properly my SDO's instances.
>
>                     My code was a simplified test to expose in this
list non
> expected errors, but I like good practices and therefore I would like fix my
> code.
>
>                     Could you mail your suggestion again please?
>
> Thanks!
>
>                   Sebastián
>
>
> On Mon, Jun 1, 2009 at 5:42 AM, kelvin goodson <kelvingoodson@gmail.com>
> wrote:
>>
>> Hi Sebastien
>>  it's not clear to me whether you intend to use lines such as ...
>>
>>  Laboratory lab = EntityFactory.INSTANCE.createLaboratory();
>>
>> in your solution,  or whether this is just a quick piece of demo code.
>>
>> If I understand this thread properly then I think you have solved your
>> problem, however, I would just like to comment that the line ...
>>
>> Laboratory lab = EntityFactory.INSTANCE.createLaboratory();
>>
>> is not the best way to create an SDO instance.  Maybe tyhis is just a
>> quick demo line of code,  but using the generated Factory instances
>> directly allows coding that might lead you to believe that you have a
>> good working SDO environment when you might not have.
>>
>> As this thread has mentioned,  the SDO runtime needs to have metadat
>>
>>
>>
>> 2009/6/1 Sebastián Groh <sebastiangroh@gmail.com>:
>> > Hello,
>> >            Thanks Ant Elder, your Apache Tuscany SCA Java 1.5 released
>> > announce mail responded my last question on this list.
>> >
>> >           Raymond, the problem was fixed in version tuscany 1.5. I
>> > didn't need comment the service promotion.
>> > I have had the same exception when I tried something like this:
>> >
>> > 0.  public class BiochemicalCircleImpl implements BiochemicalCircle{
>> > 1.
>> > 2.     public Laboratory getLaboratory(String name) {
>> > 3.        if (name.length() < 5)
>> > 4.             return null;
>> > 5.        Laboratory lab = EntityFactory.INSTANCE.createLaboratory();
>> > 6.        lab.setName("Main Laboratory");
>> > 7.        return lab;
>> > 8.     }
>> > 9.  }
>> >
>> > If condition was true in line 3, null was returned an the exception was:
>> > Exception in thread "main" java.lang.ClassCastException:
>> > org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl
>> >
>> > otherwhise, all works perfectly!
>> >
>> > My solution was, create a Laboratory object with properties setted in
>> > null and change invocation logic assuming that always will return a
>> > Laboratory object. Empty Laboratories were considered when any of its
>> > properties was null.
>> >
>> >
>> > Thanks Raymond, and all people who responded to my earlier concerns.
>> > Best Regards,
>> >
>> >                         Sebastián Groh
>> >
>> >
>> >
>> > 2009/5/30 Sebastián Groh <sebastiangroh@gmail.com>
>> >>
>> >> Hello,
>> >>            Raymond, thanks for your answer. I've checked my mail
late,
>> >> I see that you can test my example without my source files.
>> >> At the moment, I commented the service promotion as you suggest, and
>> >> I'm trying to download the latest 1.5 code
>> >> but I can't found that.
>> >>
>> >> Someone here knows how to download that version? I was reading
>> >> Continuum and in version says "1.6-SNAPSHOT" .
>> >>
>> >> Have Tuscany SCA version 2.X implemented the same functionality that
>> >> version 1.x?
>> >>
>> >> Raymond, will I found my errors fixed in version 2.X?
>> >>
>> >> Thanks,
>> >>
>> >>                Sebastián Groh
>> >>
>> >>
>> >>
>> >>
>> >> On Sat, May 30, 2009 at 3:57 AM, Raymond Feng <enjoyjava@gmail.com>
>> >> wrote:
>> >>>
>> >>> Hi,
>> >>>
>> >>> I just tried your test case (adding the classes/resources to the
>> >>> helloworld-ws-sdo sample) with the latest 1.5 code. It works after I
fixed
>> >>> an issue in the composite file:
>> >>>
>> >>> <?xml version="1.0" encoding="UTF-8"?>
>> >>> <sca:composite
>> >>> xmlns:federation="http://eclipse.org/SCAExample1/src/resources/federation"
>> >>>   xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
>> >>> name="clinicalLaboratory"
>> >>>
>> >>> targetNamespace="http://eclipse.org/SCAExample1/src/resources/clinicalLaboratory">
>> >>>
>> >>>   <sca:component name="BiochemicalCircleComponent">
>> >>>       <sca:implementation.java
>> >>> class="services.bcircle.BiochemicalCircleImpl" />
>> >>>       <sca:service name="BiochemicalCircle">
>> >>>           <sca:interface.java
>> >>> interface="services.bcircle.BiochemicalCircle" />
>> >>>           <sca:binding.ws
>> >>> uri="http://localhost:8080/SCA1/MyServiceComponent" />
>> >>>       </sca:service>
>> >>>   </sca:component>
>> >>>   <!--
>> >>>   <sca:service name="BiochemicalCircle"
>> >>> promote="BiochemicalCircleComponent/BiochemicalCircle" />
>> >>>    -->
>> >>> </sca:composite>
>> >>>
>> >>> Please note the service promotion is commented out as it triggers an
>> >>> issue in Tuscany where the service promotion has the same URI as the
>> >>> internal binding.ws.
>> >>>
>> >>> Thanks,
>> >>> Raymond
>> >>>
>> >>> From: Sebastián Groh
>> >>> Sent: Friday, May 29, 2009 3:38 PM
>> >>> To: user@tuscany.apache.org
>> >>> Subject: Re: WS bindings and SDO
>> >>>
>> >>>
>> >>> Raymond,
>> >>>                hello again, I follow your advice  " I suggest
that you
>> >>> open a JIRA and attach the test case there so that we can debug.". I
opened
>> >>> a JIRA (link). This is my first bug there. Can you tell me if I've posted
>> >>> enough information?
>> >>> Thanks,
>> >>>              Sebastián Groh
>> >>>
>> >>> 2009/5/26 Sebastián Groh <sebastiangroh@gmail.com>:
>> >>>>
>> >>>> Hi Raymond,
>> >>>>                    thanks for your answer. I debug my
application and
>> >>>> sca
>> >>>> source.
>> >>>> Next I will try to explain the invocation chain:
>> >>>>
>> >>>> When JDKInvocationHandler calls method invoke(InvocationChain chain,
>> >>>> Object[] args, RuntimeWire wire, EndpointReference source)
>> >>>>
>> >>>> line 288: Message resp = headInvoker.invoke(msg); // invocation
>> >>>> occurs
>> >>>> without errors
>> >>>> line 289: Object body = resp.getBody(); // Returns an
>> >>>> org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl object
>> >>>>
>> >>>> It seems that body was not instantiated with the correct class.
>> >>>>
>> >>>>
>> >>>> Cite:
>> >>>>        " I suggest that you open a JIRA and attach the test
case
>> >>>> there so
>> >>>> that we can debug."
>> >>>> I'll try this, i never did that before. What I need to post there?
>> >>>>
>> >>>> For the moment I'll publish my problem here.
>> >>>>
>> >>>> My XSD file is:
>> >>>> <?xml version="1.0" encoding="UTF-8"?>
>> >>>> <schema xmlns="http://www.w3.org/2001/XMLSchema"
>> >>>>
>> >>>>
>> >>>>
>> >>>> targetNamespace="http://eclipse.org/SCAExample1/src/resources/clinicalLaboratory"
>> >>>>
>> >>>>
>> >>>>
>> >>>> xmlns:tns="http://eclipse.org/SCAExample1/src/resources/clinicalLaboratory"
>> >>>>   elementFormDefault="qualified">
>> >>>>   <complexType name="Practice">
>> >>>>       <sequence>
>> >>>>           <element name="name" type="string" />
>> >>>>       </sequence>
>> >>>>   </complexType>
>> >>>>   <complexType name="Laboratory">
>> >>>>       <sequence>
>> >>>>           <element name="name" type="string" />
>> >>>>           <element name="practices" type="tns:Practice"
>> >>>> maxOccurs="unbounded"/>
>> >>>>        </sequence>
>> >>>>   </complexType>
>> >>>> </schema>
>> >>>>
>> >>>> Composite file:
>> >>>> <?xml version="1.0" encoding="UTF-8"?>
>> >>>> <sca:composite
>> >>>>
>> >>>> xmlns:federation="http://eclipse.org/SCAExample1/src/resources/federation"
>> >>>> xmlns:sca="http://www.osoa.org/xmlns/sca/1.0"
>> >>>> name="clinicalLaboratory"
>> >>>>
>> >>>> targetNamespace="http://eclipse.org/SCAExample1/src/resources/clinicalLaboratory">
>> >>>> <sca:component name="BiochemicalCircleComponent">
>> >>>>   <sca:implementation.java
>> >>>> class="services.bcircle.BiochemicalCircleImpl"/>
>> >>>>   <sca:service name="BiochemicalCircle">
>> >>>>    <sca:interface.java
>> >>>> interface="services.bcircle.BiochemicalCircle"/>
>> >>>>    <sca:binding.ws
>> >>>> uri="http://localhost:8080/SCA1/MyServiceComponent"/>
>> >>>>   </sca:service>
>> >>>>  </sca:component>
>> >>>>  <sca:service name="BiochemicalCircle"
>> >>>> promote="BiochemicalCircleComponent/BiochemicalCircle"/>
>> >>>> </sca:composite>
>> >>>>
>> >>>> Interface file:
>> >>>> package services.bcircle;
>> >>>> import java.util.ArrayList;
>> >>>> import javax.xml.bind.annotation.XmlType;
>> >>>> import model.sdo.EntityFactory;
>> >>>> import org.apache.tuscany.sca.databinding.annotation.DataBinding;
>> >>>> import org.osoa.sca.annotations.Remotable;
>> >>>>
>> >>>> @Remotable
>> >>>> public interface BiochemicalCircle{
>> >>>>    void setLaboratory(model.sdo.Laboratory lab);
>> >>>>    model.sdo.Laboratory getLaboratory(String name);
>> >>>> }
>> >>>>
>> >>>> Interface implementation:
>> >>>>
>> >>>> package services.bcircle;
>> >>>> import model.sdo.EntityFactory;
>> >>>> import model.sdo.Laboratory;
>> >>>> import org.osoa.sca.annotations.Service;
>> >>>>
>> >>>>
>> >>>> @Service(BiochemicalCircle.class)
>> >>>> public class BiochemicalCircleImpl implements BiochemicalCircle{
>> >>>>   public Laboratory getLaboratory(String name) {
>> >>>>      Laboratory lab = EntityFactory.INSTANCE.createLaboratory();
>> >>>>      lab.setName("Main Laboratory");
>> >>>>      return lab;
>> >>>>   }
>> >>>>
>> >>>>   public void setLaboratory(Laboratory lab) {
>> >>>>      //sad method
>> >>>>      System.out.println(lab.getName());
>> >>>>   }
>> >>>> }
>> >>>>
>> >>>> My Test class:
>> >>>> package test;
>> >>>>
>> >>>> import model.sdo.EntityFactory;
>> >>>> import model.sdo.Laboratory;
>> >>>>
>> >>>> import org.apache.tuscany.sca.host.embedded.SCADomain;
>> >>>> import services.bcircle.BiochemicalCircle;
>> >>>> import services.bcircle.BiochemicalCircleImpl;
>> >>>>
>> >>>>
>> >>>> public class Test {
>> >>>>
>> >>>>    /**
>> >>>>     * @param args
>> >>>>     */
>> >>>>    public static void main(String[] args) {
>> >>>>        BiochemicalCircle biochemicalCircl = new
>> >>>> BiochemicalCircleImpl();
>> >>>>        Laboratory lab2 = biochemicalCircl.getLaboratory("Lab2");
>> >>>> //This
>> >>>> invocation without use SCA works ok.
>> >>>>
>> >>>>
>> >>>>        SCADomain scaDomain =
>> >>>> SCADomain.newInstance("resources/clinicalLaboratory.composite");
>> >>>>        BiochemicalCircle biochemicalCircle = scaDomain.getService(
>> >>>>                BiochemicalCircle.class,
>> >>>> "BiochemicalCircleComponent");
>> >>>>        Laboratory lab = EntityFactory.INSTANCE.createLaboratory();
>> >>>>        lab.setName("lab2");
>> >>>>        biochemicalCircle.setLaboratory(lab); // this invocation
works
>> >>>> ok
>> >>>> too
>> >>>>
>> >>>>        lab = biochemicalCircle.getLaboratory("Lab2"); // here
I have
>> >>>> an
>> >>>> exception posted below.
>> >>>>
>> >>>>        //here I wait a moment before close scaDomain
>> >>>>
>> >>>>        scaDomain.close();
>> >>>>
>> >>>> }
>> >>>>
>> >>>> Exception:
>> >>>> Exception in thread "main" java.lang.ClassCastException:
>> >>>> org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl
>> >>>>    at $Proxy16.getLaboratory(Unknown Source)
>> >>>>    at test.Test.main(Test.java:28)
>> >>>>
>> >>>> Note:
>> >>>> EntityFactory and sdo objects where created using
>> >>>> org.apache.tuscany.sdo.generate.XSD2JavaGenerator.
>> >>>>
>> >>>> Please, tell me if something is wrong.
>> >>>> Regards,
>> >>>>
>> >>>>                 Sebastián Groh
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>> On Tue, May 26, 2009 at 12:30 PM, Raymond Feng <enjoyjava@gmail.com>
>> >>>> wrote:
>> >>>>>
>> >>>>> Did you check the response message from the WS? It might be
the case
>> >>>>> that
>> >>>>> XML payload is not conforming to the XSD which is used to generate
>> >>>>> the
>> >>>>> SDO.
>> >>>>>
>> >>>>> I suggest that you open a JIRA and attach the test case there
so
>> >>>>> that we
>> >>>>> can
>> >>>>> debug.
>> >>>>>
>> >>>>> Thanks,
>> >>>>> Raymond
>> >>>>>
>> >>>>> --------------------------------------------------
>> >>>>> From: "Sebastián Groh" <sebastiangroh@gmail.com>
>> >>>>> Sent: Sunday, May 24, 2009 11:06 PM
>> >>>>> To: <user@tuscany.apache.org>
>> >>>>> Subject: Re: WS bindings and SDO
>> >>>>>
>> >>>>>> Hello,
>> >>>>>>
>> >>>>>>        Raymond I've posted my interface in my last mail,
after that
>> >>>>>> I did some tests.
>> >>>>>> When I send a SDO Object, all runs ok, but unfortunately
for all
>> >>>>>> SCA
>> >>>>>> users, return an SDO object is a problem even if HelperContext
is
>> >>>>>> used.
>> >>>>>>
>> >>>>>> For example:
>> >>>>>> 1.  SCADomain scaDomain =
>> >>>>>>             SCADomain.newInstance("clinicalLaboratory.composite");
>> >>>>>> 2.  BiochemicalCircle service =
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> scaDomain.getService(BiochemicalCircle.class,"BiochemicalCircleComponent");
>> >>>>>> 3. Laboratory lab = EntityFactory.INSTANCE.createLaboratory();
>> >>>>>> 4. lab.setName("lab2");
>> >>>>>> 5. biochemicalCircle.setLaboratory(lab);
>> >>>>>> 6. Laboratory posibleLab = (Laboratory)
>> >>>>>> service.getLaboratory("Lab2");
>> >>>>>>
>> >>>>>> Line 5 works ok, SDO Laboratory object was send and name
property
>> >>>>>> was
>> >>>>>> read ok on server side.
>> >>>>>> Line 6 fails, I'm having always the same error:
>> >>>>>>
>> >>>>>>  java.lang.ClassCastException:
>> >>>>>>  org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl
>> >>>>>>  at $Proxy18.getLaboratory(Unknown Source)
>> >>>>>>
>> >>>>>> Thanks,
>> >>>>>> Best Regards,
>> >>>>>>
>> >>>>>>                         Sebastián Groh
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> 2009/5/22 Sebastián Groh <sebastiangroh@gmail.com>:
>> >>>>>>>
>> >>>>>>> Hello Raymond,
>> >>>>>>>
>> >>>>>>> My Interface is quite simple:
>> >>>>>>>
>> >>>>>>> package services.bcircle;
>> >>>>>>>
>> >>>>>>> import java.util.ArrayList;
>> >>>>>>>
>> >>>>>>> import org.osoa.sca.annotations.Remotable;
>> >>>>>>>
>> >>>>>>> @Remotable
>> >>>>>>> public interface BiochemicalCircle{
>> >>>>>>>
>> >>>>>>>
>> >>>>>>>      ArrayList<String> getLaboratoriesNames();
>> >>>>>>>
>> >>>>>>>      model.sdo.Laboratory getLaboratory(String name);
>> >>>>>>>
>> >>>>>>> }
>> >>>>>>>
>> >>>>>>> I think that my problem is related with SDO HelperContext
but I'm
>> >>>>>>> confused.
>> >>>>>>>
>> >>>>>>> Thanks,
>> >>>>>>>            Sebastián
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> On Fri, May 22, 2009 at 7:50 PM, Raymond Feng
>> >>>>>>> <enjoyjava@gmail.com>
>> >>>>>>> wrote:
>> >>>>>>>>
>> >>>>>>>> Hi,
>> >>>>>>>>
>> >>>>>>>> It seems that the SDO HelperContext is not correctly
populated by
>> >>>>>>>> Tuscany
>> >>>>>>>> based on the introspection of the Java interface
that references
>> >>>>>>>> the
>> >>>>>>>> SDO
>> >>>>>>>> types. Can you post the BiochemicalCircle interface?
>> >>>>>>>>
>> >>>>>>>> Thanks,
>> >>>>>>>> Raymond
>> >>>>>>>>
>> >>>>>>>> --------------------------------------------------
>> >>>>>>>> From: "Sebastián Groh" <sebastiangroh@gmail.com>
>> >>>>>>>> Sent: Friday, May 22, 2009 2:47 PM
>> >>>>>>>> To: <user@tuscany.apache.org>
>> >>>>>>>> Subject: Re: WS bindings and SDO
>> >>>>>>>>
>> >>>>>>>>> Hello Again,
>> >>>>>>>>>
>> >>>>>>>>> I'm getting the same error using ws binding.
>> >>>>>>>>> If I try:
>> >>>>>>>>>            SCADomain scaDomain =
>> >>>>>>>>> SCADomain.newInstance("clinicalLaboratory.composite");
>> >>>>>>>>>            BiochemicalCircle service =
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> scaDomain.getService(BiochemicalCircle.class,"BiochemicalCircleComponent");
>> >>>>>>>>>            Laboratory lab = (Laboratory)
>> >>>>>>>>> service.getLaboratory("Lab2");
>> >>>>>>>>>
>> >>>>>>>>> I have the exception:
>> >>>>>>>>>    java.lang.ClassCastException:
>> >>>>>>>>>   org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl
>> >>>>>>>>>   at $Proxy18.getLaboratory(Unknown Source)
>> >>>>>>>>>
>> >>>>>>>>> but if I simple do:
>> >>>>>>>>>
>> >>>>>>>>>             BiochemicalCircle biochemicalCircle
= new
>> >>>>>>>>> BiochemicalCircleImpl();
>> >>>>>>>>> Laboratory lab2 = biochemicalCircle.getLaboratory("Lab2");
>> >>>>>>>>>
>> >>>>>>>>> All runs ok.
>> >>>>>>>>>
>> >>>>>>>>> Invocation to BiochemicalCircle methods that
not have SDO
>> >>>>>>>>> parameters
>> >>>>>>>>> (or return them) works fine even if SCADomain
is used.
>> >>>>>>>>>
>> >>>>>>>>> Any in this list, know what I should do for
solve this problem?
>> >>>>>>>>>
>> >>>>>>>>> Thanks,
>> >>>>>>>>>           Sebastián
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>>
>> >>>>>>>>> 2009/5/21 Sebastián Groh <sebastiangroh@gmail.com>:
>> >>>>>>>>>>
>> >>>>>>>>>> Hello Kevin, Simon,
>> >>>>>>>>>>
>> >>>>>>>>>> cite:
>> >>>>>>>>>>        Is the XSD you generated the
SDO from included in your
>> >>>>>>>>>> contribution?
>> >>>>>>>>>>
>> >>>>>>>>>> Yes I'm including the XSD, but how and when
should it be used?
>> >>>>>>>>>> I verified if wsdl generated have included
schema types and
>> >>>>>>>>>> there are
>> >>>>>>>>>> ok. I thought that was enough if the wsdl
have schemas
>> >>>>>>>>>> included. Is
>> >>>>>>>>>> this correct?
>> >>>>>>>>>>
>> >>>>>>>>>> Simon, you are rigth when you see AnyTypeDataObjectImpl
>> >>>>>>>>>> instances is
>> >>>>>>>>>> becouse "If the ServiceFactory is not registered,
the data
>> >>>>>>>>>> (from the
>> >>>>>>>>>> inline schema of the WSDL) are then represented
by
>> >>>>>>>>>> 'org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl'
"
>> >>>>>>>>>>
>> >>>>>>>>>> What must I do? Use  commonj.sdo.helper.HelperContext
or not?
>> >>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>>> Any user in this list have errors like that?
>> >>>>>>>>>> Thanks for yours answers,
>> >>>>>>>>>> Regards,
>> >>>>>>>>>>             Sebastián
>> >>>>>>>>>>
>> >>>>>>>>>> On Thu, May 21, 2009 at 6:50 AM, kelvin
goodson
>> >>>>>>>>>> <kelvingoodson@gmail.com>
>> >>>>>>>>>> wrote:
>> >>>>>>>>>>>
>> >>>>>>>>>>> I'm no expert on how SCA uses SDO, but
I do understand the SDO
>> >>>>>>>>>>> side
>> >>>>>>>>>>> of
>> >>>>>>>>>>> this, which may help you or someone
else get to how to fix
>> >>>>>>>>>>> this
>> >>>>>>>>>>> within
>> >>>>>>>>>>> SCA.  The time that you see instances
of AnyTypeDataObjectImpl
>> >>>>>>>>>>> appearing is when an SDO deserialization
operation has no
>> >>>>>>>>>>> metadata
>> >>>>>>>>>>> within its operating context to describe
an object it is
>> >>>>>>>>>>> trying to
>> >>>>>>>>>>> deserialize, so it falls back on a very
weak default model of
>> >>>>>>>>>>> data
>> >>>>>>>>>>> embodied in the built-in AnyTypedataObject
SDO class.
>> >>>>>>>>>>>
>> >>>>>>>>>>> Either the SCA infrastructure or you
must arrange for the
>> >>>>>>>>>>> generated
>> >>>>>>>>>>> SDO factory associated with your Laboratory
class to be known
>> >>>>>>>>>>> to the
>> >>>>>>>>>>> relevant instance of SDO's HelperContext
class. My feeling is
>> >>>>>>>>>>> there
>> >>>>>>>>>>> is
>> >>>>>>>>>>> most probably a way to influence SCA
to do this for you,  but
>> >>>>>>>>>>> I
>> >>>>>>>>>>> don't
>> >>>>>>>>>>> know how.  At the Tuscany SDO API level,
the metadata
>> >>>>>>>>>>> registration
>> >>>>>>>>>>> is
>> >>>>>>>>>>> done via the Factory's register(HelperContext
scope)  method,
>> >>>>>>>>>>> so you
>> >>>>>>>>>>> could watch for calls to that method
on the factory impl.
>> >>>>>>>>>>>
>> >>>>>>>>>>> Kelvin.
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>> 2009/5/21 Simon Laws <simonslaws@googlemail.com>:
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> 2009/5/21 Sebastián Groh <sebastiangroh@gmail.com>:
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> Hello, I'm trying to work with
an SCA Composite that use ws
>> >>>>>>>>>>>>> binding.
>> >>>>>>>>>>>>> My component definition:
>> >>>>>>>>>>>>>  <sca:component name="BiochemicalCircleComponent">
>> >>>>>>>>>>>>>  <sca:implementation.java
>> >>>>>>>>>>>>> class="services.bcircle.BiochemicalCircleImpl"/>
>> >>>>>>>>>>>>>  <sca:service name="BiochemicalCircle">
>> >>>>>>>>>>>>>     <sca:interface.java
>> >>>>>>>>>>>>> interface="services.bcircle.BiochemicalCircle"/>
>> >>>>>>>>>>>>>     <sca:binding.ws
>> >>>>>>>>>>>>> uri="http://localhost:8080/SCA1/MyServiceComponent"/>
>> >>>>>>>>>>>>>  </sca:service>
>> >>>>>>>>>>>>>  </sca:component>
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> The service retrieve a SDO object
(Laboratory) that I
>> >>>>>>>>>>>>> generated
>> >>>>>>>>>>>>> from
>> >>>>>>>>>>>>> XSD without problems.
>> >>>>>>>>>>>>> I deployed the project on Apache
Tomcat/5.5.27 and I'm using
>> >>>>>>>>>>>>> this
>> >>>>>>>>>>>>> service from a jsp page as follows:
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> (my includes)
>> >>>>>>>>>>>>> .
>> >>>>>>>>>>>>> .
>> >>>>>>>>>>>>> .
>> >>>>>>>>>>>>> <% SCADomain scaDomain =
>> >>>>>>>>>>>>> SCADomain.newInstance("clinicalLaboratory.composite");
>> >>>>>>>>>>>>>    BiochemicalCircle service
=
>> >>>>>>>>>>>>> scaDomain.getService(BiochemicalCircle.class,
>> >>>>>>>>>>>>> "BiochemicalCircleComponent");
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>>     Laboratory lab = (Laboratory)
>> >>>>>>>>>>>>> service.getLaboratory("Lab2");
>> >>>>>>>>>>>>> .
>> >>>>>>>>>>>>> .  (more logic)
>> >>>>>>>>>>>>> .
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> %>
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> In line
>> >>>>>>>>>>>>>       Laboratory lab = (Laboratory)
>> >>>>>>>>>>>>> service.getLaboratory("Lab2");
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> I have the exception:
>> >>>>>>>>>>>>>     java.lang.ClassCastException:
>> >>>>>>>>>>>>> org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl
>> >>>>>>>>>>>>>     at $Proxy18.getLaboratory(Unknown
Source)
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> I have also tried to use the
class
>> >>>>>>>>>>>>> commonj.sdo.helper.HelperContext
>> >>>>>>>>>>>>> to
>> >>>>>>>>>>>>> set a scope for my SDOFactory
but I'm having the same
>> >>>>>>>>>>>>> exception.
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>> Anyone in this list know to
solve this error?
>> >>>>>>>>>>>>> Regards,
>> >>>>>>>>>>>>>             Sebastián
>> >>>>>>>>>>>>>
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> Hi Sebastien
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> Is the XSD you generated the SDO
from included in your
>> >>>>>>>>>>>> contribution?
>> >>>>>>>>>>>> I'm looking at the 1.x sample helloworld-ws-sdo-webapp
and
>> >>>>>>>>>>>> can't
>> >>>>>>>>>>>> actually see that the SDO types
are specified explicitly but
>> >>>>>>>>>>>> the
>> >>>>>>>>>>>> XSD
>> >>>>>>>>>>>> used to generate them is included.
Any of the SDO experts out
>> >>>>>>>>>>>> there
>> >>>>>>>>>>>> know how we should be describing
the SDO context in SCA?
>> >>>>>>>>>>>>
>> >>>>>>>>>>>> Simon
>> >>>>>>>>>>>>
>> >>>>>>>>>>>
>> >>>>>>>>>>
>> >>>>>>>>
>> >>>>>>>
>> >>>>>>
>> >>>>>
>> >>>>
>> >>>>
>> >>>
>> >>
>> >
>
>

Mime
View raw message