Re: "any within struct" ORBit decoding problem
- From: Philip Lijnzaad <lijnzaad ebi ac uk>
- To: lijnzaad ebi ac uk
- Cc: orbit-list gnome org, senger ebi ac uk
- Subject: Re: "any within struct" ORBit decoding problem
- Date: Tue, 12 Jun 2001 17:53:56 +0100
On Tue, 12 Jun 2001 11:35:07 +0100,
"me" == Philip Lijnzaad <lijnzaad@ebi.ac.uk> wrote:
me> This has been a while ago, so I include the whole mail. The question is, has
me> anything changed in the mean time? We have a very similar setup, and are
me> trying to send a
me> struct Property {
me> string property_name;
me> any property_value;
me> };
me> to a Java server (using ORBacus 4.0.5). Plain anys (i.e. not as part of a
me> struct) appear to work fine, both as clients/servers and sending/receiving.
me> However anys as part of a struct just don't get marshalled (although we don't
me> get a failed assertion).
me> I haven't seen a follow-up to this mail; has this (IMHO serious) problem been
me> solved in the mean time? Should I get the latest ORBit snapshot from CVS ?
me> 'any' help appreciated !-)
me> Philip
OK, some more info. It turns out that it's more an interoperability problem.
To quote from a mail by my colleague Martin Senger, who investigated this in
some detail:
1) All examples work fine when both server and client are orbit-perl. That
means we have here an interoperability problem.
2) Standalone Anys work also fine. For example, method:
any get_any (in any my_any)
3) The problems are when an Any is a member of a struct. Such Any is not
passed throught the wire at all (in any combinantion of perl-orbit and
java servers/clients). Or it is lost during un/marshalling - I do not know
where.
Interesting - especially for the orbit-perl developers - is that the
Any in struct works if it is the first member of the struct. So, passing
this:
struct MyStructure {
any value;
string name;
};
works, but passing this:
struct MyStructure {
string name;
any value;
};
does not work.
4) When I am passing an array of Anys:
- again it works for orbit-perl on both sides,
- surprisingly itworks for the combinantion client-in-orbit-perl and
server in java-orbacus (which gives me some chnaces to continue with the
'novella' project, at least until the bug is fixed)
- and it does not work for client-in-java and server-in-orbit-perl
(actually it works only for the first element of the array but not for the
rest - sic!).
5) Sending/receiving array of structs with an Any as a member also does
not work (and again it works for the first struct but not for the others).
Just to be sure, I also checked sending/receiving array of structs without
any Any as members - and it works fine. So the problem is with Anys not
with sending arrays of structs.
I have tried to see if a plain C orbit-client could pass structs with
any-members to and from an ORBacus server, but I have failed so far (which
due to the scarcity of documentation on anys in C; see also my mail to
news:comp.object.corba).
The complete examples are available from
ftp://ftp.ebi.ac.uk/pub/lijnzaad/novella-tests.tar.gz
PS: following plea still stands :-)
me> PS: I have so failed to find any examples on how to work with anys in ORBit;
me> any pointers (sorry about the pun again) would be very welcome.
--
If you have a procedure with 10 parameters, you probably missed some. (Kraulis)
-----------------------------------------------------------------------------
Philip Lijnzaad, lijnzaad@ebi.ac.uk \ European Bioinformatics Institute,rm A2-08
+44 (0)1223 49 4639 / Wellcome Trust Genome Campus, Hinxton
+44 (0)1223 49 4468 (fax) \ Cambridgeshire CB10 1SD, GREAT BRITAIN
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]