[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