[omniORB] interoperability of DII requests

Welch, Jay jay.welch at transcore.com
Fri Jul 6 17:11:50 BST 2007


I believe you need to CORBA::string_dup() your argument for the call. Remember that var types such as String_var take ownership of the data and thus discard them when done. See if that helps.


-----Original Message-----
From: omniorb-list-bounces at omniorb-support.com
[mailto:omniorb-list-bounces at omniorb-support.com]On Behalf Of Jason
Stelzer
Sent: Friday, July 06, 2007 4:02 PM
To: Jason Stelzer
Cc: omniorb-list at omniorb-support.com
Subject: Re: [omniORB] interoperability of DII requests



On Jul 6, 2007, at 12:58 PM, Jason Stelzer wrote:

> Hello, this is probably a self inflicted problem as I'm very new to  
> corba. But, there doesn't seem to be many good places to look for  
> examples that apply to what I'm doing.
>
> Currently I'm working on getting an older application of ours to  
> talk to our newer ejb servers via corba. We're using java 1.5 on  
> the server side with jboss 4.0.5GA. On the client side, I'm using  
> omniorb 4.1.0. At this point I've puzzled out how to get ejb3 beans  
> registered with jacorb in jboss. So, at this point I can look up  
> the remote interface to an ejb3 bean in the orb.
>
> I can connect to the jboss server and lookup the remote name  
> service on the C++ side.
>
> I can lookup objects and create requests. However, I believe I'm  
> either putting the request together wrong or need to declare things  
> slightly differently.
>
> The bean I'm talking to is a glorified hello world bean. It takes a  
> string as an argument and returns a different string. The method  
> never gets invoked. It looks like things are dying during the corba  
> marshalling of input. All I see in the jboss log is:
>
> 12:12:40,052 ERROR  sys : [STDERR] org.omg.CORBA.MARSHAL: unknown  
> value tag: 0x6 (offset=0x88)  vmcid: 0x0  minor code: 0  completed: No
> 12:12:40,052 ERROR  sys : [STDERR]      at  
> org.jacorb.orb.CDRInputStream.read_value(CDRInputStream.java:2446)
> 12:12:40,053 ERROR  sys : [STDERR]      at  
> org.jboss.iiop.rmi.marshal.CDRStream$StringReader.read 
> (CDRStream.java:578)
> 12:12:40,053 ERROR  sys : [STDERR]      at  
> org.jboss.iiop.rmi.marshal.strategy.SkeletonStrategy.readParams 
> (SkeletonStrategy.java:128)
> 12:12:40,053 ERROR  sys : [STDERR]      at  
> org.jboss.ejb3.iiop.BeanCorbaServant._invoke(BeanCorbaServant.java: 
> 193)
> 12:12:40,054 ERROR  sys : [STDERR]      at  
> org.jacorb.poa.RequestProcessor.invokeOperation 
> (RequestProcessor.java:297)
> 12:12:40,054 ERROR  sys : [STDERR]      at  
> org.jacorb.poa.RequestProcessor.process(RequestProcessor.java:596)
> 12:12:40,054 ERROR  sys : [STDERR]      at  
> org.jacorb.poa.RequestProcessor.run(RequestProcessor.java:739)
> 12:12:40,054 INFO   sys : [controller] rid: 4 opname: echoString  
> invocation: system exception was thrown (org.omg.CORBA.MARSHAL:  
> unknown value tag: 0x6 (offset=0x88)  vmcid: 0x0  minor code: 0   
> completed: No)
>
>

As a followup, I've found that if I make void() calls, I get no  
errors. Logging shows the calls are made. However when I return or  
pass in strings I get exceptions related to marshalling the data. I'm  
not quite sure why.


--
J.



_______________________________________________
omniORB-list mailing list
omniORB-list at omniorb-support.com
http://www.omniorb-support.com/mailman/listinfo/omniorb-list



More information about the omniORB-list mailing list