[omniORB] Re: value type: Marshall error
Андрей Пучин
pouchin at gmail.com
Thu Sep 29 12:30:16 BST 2005
Hi Duncan,
I've made a simple example, client and server on python.
it didn't work.
OmniORB raises exception when i put in Any valuetype
>> omniORB: throw BAD_TYPECODE from GIOP_C.cc:268 (NO,BAD_TYPECODE_UnknownKind)
What's wrong?
omniORB and omniORBpy from
>> Mon Apr 25 19:26:20 BST 2005 dgrisby
Can't build latest version on Windows.
Wednesday, September 28, 2005, 5:47:26 PM, you wrote:
> On Friday 23 September,
> =?Windows-1251?Q?=C0=ED=E4=F0=E5=E9_=CF=F3=F7=E8=ED?= wrote:
>> I have a giop dump for both ace/tao and omniORBpy clients. The difference in
>> value_tag.
>>
>> In case with tao client the value_tag is 0x7fffff02 (single repository id is
>> present) followed with RepoId, and
>> with omniORBpy client value is 0x7fffff00.
>>
>> TAO hasn't support this case :-((
> Well, TAO is very broken, then.
>> When omniORBpy sends a single repository id in the encoding??
> omniORB normally only sends a repository id when the value you are
> sending is derived from the value specified in IDL (and is not
> truncatable, in which case it sends a list of repository ids).
> As a quick hack, you can force it to send the repository id by setting
> the repository id to start RMI: since the GIOP spec requires repository
> ids to always be sent in that case. I expect that that will cause it to
> break if you ever use Java, though, because it will try to read
> something into the RMI id.
> Cheers,
> Duncan.
--
Best regards,
Андрей mailto:pouchin at gmail.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dump.log
Type: application/octet-stream
Size: 6487 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20050929/a2a7b25b/dump.obj
-------------- next part --------------
#!/usr/bin/env python
import CORBA, ValueTest
import omniORB.any as omniAny
from ValueTest import *
def main(args):
orb = CORBA.ORB_init(args)
poa = orb.resolve_initial_references("RootPOA")
poa._get_the_POAManager().activate()
obj = orb.string_to_object(args[1])
obj = obj._narrow(ValueTest.SearchManager)
qd = ValueTest.QueryDictData(123)
any = omniAny.to_any(qd)
# tc = CORBA.TypeCode(CORBA.id(ValueTest.QueryDictData))
# qd = ValueTest.LO_OR
# tc = CORBA.TypeCode(CORBA.id(ValueTest.LogicOperation))
# any = CORBA.Any(tc, qd)
q = ValueTest.Query([ValueTest.QueryAttribute(ValueTest.AT_NAME, [any])], ValueTest.QT_ATTRIBUTE)
v1 = obj.search(q)
orb.destroy()
if __name__ == "__main__":
import sys
main(sys.argv)
-------------- next part --------------
#!/usr/bin/env python
import CORBA, ValueTest, ValueTest__POA
class Test_i (ValueTest__POA.SearchManager):
def search(self, a):
print "search: ", a
return 1
def main(args):
orb = CORBA.ORB_init(args)
poa = orb.resolve_initial_references("RootPOA")
ti = Test_i()
to = ti._this()
print orb.object_to_string(to)
poa._get_the_POAManager().activate()
orb.run()
if __name__ == "__main__":
import sys
main(sys.argv)
-------------- next part --------------
A non-text attachment was scrubbed...
Name: value1.idl
Type: application/octet-stream
Size: 1033 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20050929/a2a7b25b/value1.obj
More information about the omniORB-list
mailing list