[omniORB] OmniORBpy valuetype use

Rodrigo Baptista digobaptista at gmail.com
Tue Apr 12 20:19:16 BST 2005


Hello im trying to use valuetype in omniorbpy, here it is my issue:

I have the following piece of idl:

	valuetype Message
	{
              /*Here contains the variables and their getters and setters*/
        };

	interface Mailbox  
	{          
		typedef sequence<Message> messages;      
		string getName(in User caller);
		messages getMessages(in User caller);
        };

- The compilation of the idl goes fine , this idl is also used in a
java server and java client which are comunicating and working
correctly
- Now the python client uses this idl and the interoperablity between
the python client and the java server goes ok when using the naming
service and objects by reference but when i try to call the following
method in the python client:
                  
                           messages getMessages(in User caller);

which returns a list of valuetype Message i receive this error from
the python client:

Traceback (most recent call last):
  File "client.py", line 12, in ?
    user.getMailboxes()
  File "/home/digo/pyomni/groupwaresystem.py", line 95, in getMailboxes
    get_messages = mailbox.getMessages(self.user_logged)
  File "/home/digo/pyomni/groupwaresystem_idl.py", line 369, in getMessages
    return _omnipy.invoke(self, "getMessages",
_0_Common.Mailbox._d_getMessages, args)
omniORB.CORBA.MARSHAL: Minor: MARSHAL_InvalidChunkedEncoding, COMPLETED_YES.

- I checked the valuetype example from the omniorbpy/examples folder
where i deduced this:

# First i created a class Message_i which contains the implementation
of the valuetype   Message (getters and setters only and no __init__
function)

class Message_i(Common.Message):
....

# Then i registered the valuetype Message to the factory

self.orb.register_value_factory(CORBA.id(Common.Message),Message_i)

Is it something missing?

Thanks,
Digo



More information about the omniORB-list mailing list