Re: Error Deserializing EOGlobalID via Web Services
Re: Error Deserializing EOGlobalID via Web Services
- Subject: Re: Error Deserializing EOGlobalID via Web Services
- From: email@hidden
- Date: Tue, 13 Jun 2006 08:19:27 +1200
Hello Ken;
So what you're basically saying is, you're using the temporary
global ID as a way to reference items across the wire that are all
in the same server side editing context.
^^^ Yes that is about the long and short of it.
Sounds like a reasonable approach, but my guess is people at Apple
had the same basic reaction as me :) I would guess that if your
object graph is relatively simple you could do this with a custom
style of object reference, but that could get tedious for larger
graphs. Sorry I don't have much else to add - I would probably end
up writing my own serialization for the object :)
I was thinking that I could go to the length of writing my own
Dictionary-->EOGlobalID deserialiser that handled temporary GID's
properly, but it appears that the EOTemporaryGlobalID leaves no way
to actually create one from raw data.
cheers.
Hello Ken;
I am authenticating with the system and obtaining a session.
Further WS invocations on the system are in the context of this
session so there is a default EC which I am using. I typically
undertake a number of WS invocations into my system to create a
graph of modified/inserted objects in the EC and then I persist it
with a subsequent 'save changes' invocation. Since I am inserting
objects into the EC using WS invocations, they will have temporary
GID's until I persist the EC. In order to add a few EO's and
create relationships between them, I need to refer to them in the
EC on the server which is only able to be conveniently done by
referring to them using their temporary GID's as they are still
only inserted objects and not persisted with their key GID's. It
may well be the case that my EO's are invalid unless some of these
relationships are formed and so I can't persist them until the
graph is setup correctly in the EC with these relationships.
Furthermore, I definitely do not want some of the EO's persisted
without the whole lot persisted. So without working
deserialisation of temporary GID's, something that seems like a
very natural thing to need, things seem a bit tricky!
I see that the 'WOGlobalIDDeserializer' has an instance variable
'byte[] data' so I do have to wonder if I'm not just missing
something.
cheers.
What good is serializing a temporary global ID? A temporary ID
is only good and useful in the editing context that created it.
Can you explain what you're attempting to do?
...
Has anybody any further advice in this area? I'd like to shift
EOTemporaryGlobalID-s from the client back to the server in
order to reference EO's that I'd made in previous web-services
invocations. EOTemporaryGlobalID-s serialise fine from WO...
(the A's are fake data obviously)
<globalID xsi:type="ns4:EOGlobalID">
<data xsi:type="xsd:base64Binary">AAAAAAAAAAAAAAAAA</data>
</globalID>
...but they don't seem to deserialise in the same way.
cheers.
It might be that you can't do this with a EOTemporaryGlobalID.
Those
aren't real global IDs, just a process specific placeholder for
a real
global ID that *may* get generated later.
Chuck
At 01:15 PM 21/11/2003 -0700, King Chung Huang wrote:
>I'm trying to return a EOGlobalID (specifically,
EOTemporaryGlobalID)
>from a method provided via WebObjects's Web Services. However,
I'm
>getting an "IllegalArgumentException" and I'm not sure why
this is so.
>I've reduced the problem to a very simple scenario. WOApp 1
calls a
>no-argument web service method on WOApp 2, which returns a
EOGlobalID.
>Anyone have any ideas on what's causing the exception?
___
Andrew Lindesay
www.lindesay.co.nz
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden