error jndi binding temporary queue
Hi,
I'am having a problem trying to bind a TemporaryQueue onject instance in JNDI tree.
I would like to expose it using JNDI tree but I am having the following error:
[#|2007-06-15T12:37:37.673+0200|WARNING|sun-appserver-ee8.1|javax.enterprise.re source.corba._CORBA_.util|_ThreadID=15;|"IOP00511403: (INV_OBJREF) Class sun.rmi.transport.DGCImpl not exported, or else is actually a JRMP stub"
org.omg.CORBA.INV_OBJREF:vmcid: SUN minor code: 1403 completed: No
at com.sun.corba.ee.impl.logging.UtilSystemException.objectNotExported(UtilSystemE xception.java:562)
at com.sun.corba.ee.impl.logging.UtilSystemException.objectNotExported(UtilSystemE xception.java:585)
at com.sun.corba.ee.impl.util.Utility.autoConnect(Utility.java:148)
at com.sun.corba.ee.impl.copyobject.newreflect.ReflectObjectCopierImpl$1.createCop y(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierBase.copy(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierOrdinaryImpl$22.copy(Unk nown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierOrdinaryImpl$ClassFieldC opierUnsafeImpl.copy(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierOrdinaryImpl.doCopy(Unkn own Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierBase.copy(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierOrdinaryImpl$ClassFieldC opierUnsafeImpl.copy(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierOrdinaryImpl.doCopy(Unkn own Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierBase.copy(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierFactoryArrayImpl$1.doCop y(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierBase.copy(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ReflectObjectCopierImpl.copy(Unknow n Source)
at com.sun.corba.ee.impl.copyobject.FallbackObjectCopierImpl.copy(FallbackObjectCo pierImpl.java:31)
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.copyObject(Util.java:718)
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.copyObjects(Util.java:697)
at javax.rmi.CORBA.Util.copyObjects(Util.java:298)
at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.copyArgument s(DynamicMethodMarshallerImpl.java:381)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInv ocationHandlerImpl.java:153)
at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(Unknown Source)
at com.sun.enterprise.naming._SerialContextProvider_DynamicStub.bind(_SerialContex tProvider_DynamicStub.java)
at com.sun.enterprise.naming.SerialContext.bind(SerialContext.java:360)
at javax.naming.InitialContext.bind(InitialContext.java:359)
at it.grupposervizi.easy.commons.utils.JNDIUtils.jndiBind(JNDIUtils.java:65)
This is an extract of our code:
...
QueueConnectionFactory qcf = JMSUtils.getQueueConnectionFactory();
queueConnection = qcf.createQueueConnection();
queueSession =
queueConnection.createQueueSession(false,
Session.AUTO_ACKNOWLEDGE);
temporaryQueue = JMSUtils.getTemporaryQueue(queueSession);
queueName = temporaryQueue.getQueueName();
JNDIUtils.jndiBind(queueName, temporaryQueue);
...
I am using SUN A.S 8.1 on windows 2000 server.
Thanks in advance.
emiliano
[3558 byte] By [
emia] at [2007-11-27 7:49:07]

# 1
I am having a similar problem and I am very much interested in a resolution.
I am the developer for a JCA 1.5 resource adapter. The RA has an administration interface which is accessed via RMI. When the app server starts the RA, the RA attempts to bind the admin object to JNDI and gets the same error as above.
Note that this same RA works with WebSphere Application Server, WebLogic Application Server and JBoss Application Server.
I am using Sun Java System Application Server Enterprise Edition 8.2 (build b25-fcs).
Here is the stack trace I get:
[#|2007-06-25T14:45:23.796-0400|WARNING|sun-appserver-ee8.2|javax.enterprise.re source.corba.ee._CORBA_.util|_ThreadID=10;|"IOP00511403: (INV_OBJREF) Class com.unisys.dtp.admin.DtpAdminImpl not exported, or else is actually a JRMP stub"
org.omg.CORBA.INV_OBJREF:vmcid: SUN minor code: 1403 completed: No
at com.sun.corba.ee.impl.logging.UtilSystemException.objectNotExported(UtilSystemE xception.java:562)
at com.sun.corba.ee.impl.logging.UtilSystemException.objectNotExported(UtilSystemE xception.java:585)
at com.sun.corba.ee.impl.util.Utility.autoConnect(Utility.java:149)
at com.sun.corba.ee.impl.copyobject.newreflect.ReflectObjectCopierImpl$1.createCop y(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierBase.copy(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierFactoryArrayImpl$1.doCop y(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ClassCopierBase.copy(Unknown Source)
at com.sun.corba.ee.impl.copyobject.newreflect.ReflectObjectCopierImpl.copy(Unknow n Source)
at com.sun.corba.ee.impl.copyobject.FallbackObjectCopierImpl.copy(FallbackObjectCo pierImpl.java:31)
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.copyObject(Util.java:758)
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.copyObjects(Util.java:737)
at com.sun.corba.ee.impl.presentation.rmi.DynamicMethodMarshallerImpl.copyArgument s(DynamicMethodMarshallerImpl.java:381)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInv ocationHandlerImpl.java:152)
at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(Unknown Source)
at com.sun.enterprise.naming._SerialContextProvider_DynamicStub.bind(_SerialContex tProvider_DynamicStub.java)
at com.sun.enterprise.naming.SerialContext.bind(SerialContext.java:350)
at javax.naming.InitialContext.bind(InitialContext.java:359)
at com.unisys.dtp.connector.DtpResourceAdapter.start(DtpResourceAdapter.java:1668)
at com.unisys.dtp.connector.DtpResourceAdapter.start(DtpResourceAdapter.java:1519)
at com.sun.enterprise.connectors.ActiveInboundResourceAdapter.<init>(ActiveI nboundResourceAdapter.java:107)
at com.sun.enterprise.connectors.ActiveRAFactory.createActiveResourceAdapter(Activ eRAFactory.java:71)
at com.sun.enterprise.connectors.ResourceAdapterAdminServiceImpl.createActiveResou rceAdapter(ResourceAdapterAdminServiceImpl.java:267)
at com.sun.enterprise.connectors.ResourceAdapterAdminServiceImpl.createActiveResou rceAdapter(ResourceAdapterAdminServiceImpl.java:408)
at com.sun.enterprise.connectors.ResourceAdapterAdminServiceImpl.reCreateActiveRes ourceAdapter(ResourceAdapterAdminServiceImpl.java:438)
at com.sun.enterprise.connectors.ResourceAdapterAdminServiceImpl.addResourceAdapte rConfig(ResourceAdapterAdminServiceImpl.java:473)
at com.sun.enterprise.connectors.ConnectorRuntime.addResourceAdapterConfig(Connect orRuntime.java:582)
at com.sun.enterprise.resource.ResourceAdapterConfigDeployer.deployResource(Resour ceAdapterConfigDeployer.java:36)
at com.sun.enterprise.server.ResourcesLoader.load(ResourcesLoader.java:71)
at com.sun.enterprise.server.ConnectorResourcesLoader.loadRAConfigs(ConnectorResou rcesLoader.java:74)
at com.sun.enterprise.server.ApplicationLifecycle.onStartup(ApplicationLifecycle.j ava:173)
at com.sun.enterprise.server.ApplicationServer.onStartup(ApplicationServer.java:30 0)
at com.sun.enterprise.server.PEMain.run(PEMain.java:294)
at com.sun.enterprise.server.PEMain.main(PEMain.java:220)
|#]
# 3
I seem to have found a solution to my problem. But I'm not sure if it is applicable to emiliano.
This is my understanding of things. Anyone else who understands it better, feel free to chime in, by all means!
I was looking at the Sun JNDI tutorial at http://java.sun.com/products/jndi/tutorial/objects/storing/remote.html.
Here is an excerpt:
RMI can be supported by using the Java Remote Method Protocol (JRMP) and the Internet Inter-ORB Protocol (IIOP). The JRMP is a specialized protocol designed for RMI; the IIOP is the standard protocol for communication between CORBA objects. RMI over IIOP allows Java remote objects to communicate with CORBA objects that might be written in a non-Java programming language.
I think the default context factory for the Sun App Server expects to be using CORBA and IIOP.
When using JRMP, the object to be bound extends UnicastRemoteObject. But to use IIOP, the object to be bound extends PortableRemoteObject instead of UnicastRemoteObject. Furthermore, the object extending PortableRemoteObject must include the option "-iiop" when it is compiled with RMIC.
I changed to use IIOP, and now my bind works.