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 <[email protected]>:
> 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 <[email protected]> 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" <[email protected]>
>> Sent: Friday, May 22, 2009 2:47 PM
>> To: <[email protected]>
>> 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 <[email protected]>:
>>>>
>>>> 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 <[email protected]>
>>>> 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 <[email protected]>:
>>>>>>
>>>>>> 2009/5/21 Sebastián Groh <[email protected]>:
>>>>>>>
>>>>>>> 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
>>>>>>
>>>>>
>>>>
>>
>

Reply via email to