tuscany-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kelvin goodson <kelvingood...@gmail.com>
Subject Re: SDO Static Object
Date Tue, 16 Jun 2009 09:02:41 GMT
I'm no DAS expert. Your code assumes that DAS is using the default
helper context.  From the evidence here it would seem that it is not.
I just loaded the DAS projects into my eclipse workspace to have a
little look around.  I see there's a test class called
GeneratedCommandsTests with a method testReadCustomersStaticTypes that
seems to be doing what you want.

You can list the types in a given uri that a HelperContext knows about
using the tuscany specific API
org.apache.tuscany.sdo.api.SDOUtil#getTypes(HelperContext hc, String
uri)

Kelvin.

2009/6/15 Viatcheslav Kuravskiy <kuravskiy@googlemail.com>:
> How can I check it?
>
> Viatcheslav.
>
> kelvin goodson wrote:
>>
>> OK,  so I think you may have the metadata registered twice perhaps,
>> once dynamically and once statically. I say this because the class you
>> have an instance of is DynamicDataObjectImpl and not
>> AnyTypeDataObjectImpl.  I wonder whether a dynamic registration of the
>> schema is masking the registration of the static classes?
>>
>> Kelvin.
>>
>> 2009/6/15 Viatcheslav Kuravskiy <kuravskiy@googlemail.com>:
>>>
>>> I post my code once again:
>>>
>>>       HelperContext hc = HelperProvider.getDefaultContext();
>>>       PersonFactory.INSTANCE.register(hc);
>>>
>>>       DAS das = DAS.FACTORY.createDAS(getConfig(configFile));
>>>
>>>       Command readPerson = das.getCommand("getFirstPerson");
>>>       DataObject root = readPerson.executeQuery();
>>>
>>>       Person p = PersonFactory.INSTANCE.createPerson();
>>>
>>>       p = (Person)root.getDataObject("Person[1]");
>>>
>>> The exception is:
>>>
>>> java.lang.ClassCastException:
>>> org.apache.tuscany.sdo.impl.DynamicDataObjectImpl cannot be cast to
>>> sdo.Person
>>>
>>> --
>>> Best regards,
>>> V.Kuravskiy
>>>
>>> kelvin goodson wrote:
>>>>
>>>> Could you please supply some detail of the exception.
>>>>
>>>> I note that in some of the postings above the schema  seems to have a
>>>> type of "erson" - Similarly there are element names of "ame", "ge" and
>>>> "d"  - is this what you have or just a cut and paste error?
>>>>
>>>> Kelvin.
>>>>
>>>> 2009/6/12 Viatcheslav Kuravskiy <kuravskiy@googlemail.com>:
>>>>>
>>>>> kelvin goodson wrote:
>>>>>>
>>>>>> I'm guessing your exception is a ClassCastException because the actual
>>>>>> class is AnyTypeDataObjectImpl, and not PersonImpl.  For the DAS
to
>>>>>> create instances of your generated class it would a) have to be using
>>>>>> the default helper context, and b), understand that Person objects
are
>>>>>> from the http://www.example.org/person namespace. Perhaps someone
who
>>>>>> is familiar with DAS could take a look at this?
>>>>>>
>>>>>> Kelvin.
>>>>>>
>>>>>> 2009/6/10 Viatcheslav Kuravskiy <kuravskiy@googlemail.com>:
>>>>>>
>>>>>>> Hello to all!
>>>>>>>
>>>>>>> How can I map a DataObject to a Java object? My situation is:
>>>>>>>
>>>>>>> 1) From person.xsd was generated Person.java, PersonFactory.java,
>>>>>>> PersonImpl.java and PersonFactory.java. XSD2JavaGenerator was
used
>>>>>>> for
>>>>>>> it.
>>>>>>>
>>>>>>> Here is person.xsd:
>>>>>>>
>>>>>>> <?xml version=.0" encoding="UTF-8"?>
>>>>>>> <schema xmlns=ttp://www.w3.org/2001/XMLSchema"
>>>>>>> targetNamespace=ttp://www.example.org/person"
>>>>>>> xmlns:tns=ttp://www.example.org/person"
>>>>>>> elementFormDefault="qualified">
>>>>>>>
>>>>>>>  <complexType name=erson">
>>>>>>>    <sequence>
>>>>>>>        <element name=ame" type="string"></element>
>>>>>>>        <element name=ge" type="int"></element>
>>>>>>>        <element name=d" type="int"></element>
>>>>>>>    </sequence>
>>>>>>>  </complexType>
>>>>>>> </schema>
>>>>>>>
>>>>>>> 2) I have a RDB with a table PERSON and columns ID:integer,
>>>>>>> NAME:varchar,
>>>>>>> AGE:integer.
>>>>>>>
>>>>>>> Here is a part from Config.xml:
>>>>>>>
>>>>>>>  <Table tableName=ERSON" typeName="Person">
>>>>>>>    <Column columnName=D" primaryKey="true"/>
>>>>>>>  </Table>
>>>>>>>
>>>>>>>  <Command name=etFirstPerson" SQL="select * from PERSON where
ID=1"
>>>>>>> kind=elect"/>
>>>>>>>
>>>>>>>
>>>>>>> 3) I do:
>>>>>>>
>>>>>>>    HelperContext hc = HelperProvider.getDefaultContext();
>>>>>>>    PersonFactory.INSTANCE.register(hc);
>>>>>>>
>>>>>>>    DAS das =AS.FACTORY.createDAS(getConfig(configFile));
>>>>>>>
>>>>>>>    Command getPerson =as.getCommand("getFirstPerson");
>>>>>>>    DataObject root =etPerson.executeQuery();
>>>>>>>
>>>>>>>    DataObject p1 =root.getDataObject("Person[1]");
>>>>>>>
>>>>>>>    Person p2 =ersonFactory.INSTANCE.createPerson();
>>>>>>>
>>>>>>>    p2 =Person) p1; // Here I have exception
>>>>>>>
>>>>>>>
>>>>>>> Can somebody help me to solve this problem?
>>>>>>>
>>>>>>>
>>>>>>> Best regards,
>>>>>>> V.Kuravskiy
>>>>>>>
>>>>>>>
>>>>> Actually I did the same thing from this example:
>>>>> http://tuscany.apache.org/workingwithstaticdataobjects.html
>>>>>
>>>>> Just
>>>>>
>>>>> SDOUtil.registerStaticTypes(CustomerFactory.class);
>>>>>
>>>>> was changed with
>>>>>
>>>>> HelperContext hc = HelperProvider.getDefaultContext();
>>>>> PersonFactory.INSTANCE.register(hc);
>>>>>
>>>>> But unfortunately it's not working.
>>>>>
>>>>> V.Kuravskiy
>>>>>
>>>>>
>>
>

Mime
View raw message