Hi folks,
I developed a stateless Local EJB that acts as a client to a legacy
remote JacOrb v2.2 Corba service.
I am able to correctly deploy my EAR file (WAR + EJB JAR) in JBoss 4.0.3 SP1
using the server/default configuration.
However, I have the following problem at runtime: The ORB init seems to work well but
the following orb.string_to_object call fails, raising a VerifyError exception.
Note that I use a corbaloc URL for locating the remote NamingService.
FYI, the same client code works perfectly well in a standalone Java application that runs
outside JBoss.
I need to have the integration running very urgently.
Would somebody be kind enough to provide some sample code or advise on how to setup
JBoss for this EJB-to-JacOrb interop scenario?
Many thanks for any help.
Michel.
Deployment environment:
------------------------------
- Windows XP SP2
- JDK 1.4.2_09
- JBoss 4.0.3 SP1 (default server)
Trace:
-------
14:39:41,065 INFO [STDOUT] [33][11/08 01:39:41 PM][0][common.debug][Debug.java#289][traceException] FNE:
java.lang.VerifyError: (class: org/jacorb/orb/Delegate, method: getReference signature: (Lorg/jacorb/poa/POA;)Lorg/omg/CORBA/portable/ObjectImpl;) Incompatible object argument for function call
at org.jacorb.orb.ORB._getObject(Unknown Source)
at org.jacorb.orb.ORB.string_to_object(Unknown Source)
Sample code from the helper class used by the EJB:
------------------------------------------------------------
...
// Create and initialize the ORB
PropertiesMgrInterface pptyMgr = PropertiesMgrProxy.getPropertiesMgr();
String sOrbClass = pptyMgr.getStringProperty("org.omg.CORBA.ORBClass");
String sOrbSingletonClass = pptyMgr.getStringProperty("org.omg.CORBA.ORBSingletonClass");
Properties props = new Properties();
props.put("org.omg.CORBA.ORBClass", sOrbClass);
props.put("org.omg.CORBA.ORBSingletonClass", sOrbSingletonClass);
String domainName[] = new String[2];
domainName[0] = "-ORBdomain_name";
domainName[1] = UIS_DOMAIN_CFG_NAME;
m_orb = ORB.init(domainName , props); // <-- OK
org.omg.CORBA.Object obj =
m_orb.string_to_object("corbaloc:iiop:myhost:myport/NameService"); // <-- KO !
etc ...