Oh, i should have put a message from jboss console when trying to do the lookup. Code looks like this:
 
   Object obj = new InitialContext().lookup("java:comp/env/ejb/CheckoutRegister");
   System.out.println(obj);
And msg in jboss console is this:
 
[UniqueKey] Activated bean UniqueKey with id = se.benefit.util.UniqueKeyPK@4fc7a
011
[UniqueKey] Failed to lookup checkoutregister:ejipt: not bound
[UniqueKey] TRANSACTION ROLLBACK EXCEPTION:null; nested exception is:
        javax.ejb.EJBException
[UniqueKey] javax.naming.NameNotFoundException: ejipt: not bound
[UniqueKey]     at org.jnp.server.NamingServer.getBinding(NamingServer.java:474)
 
[UniqueKey]     at org.jnp.server.NamingServer.getBinding(NamingServer.java:482)
 
[UniqueKey]     at org.jnp.server.NamingServer.getObject(NamingServer.java:488)
[UniqueKey]     at org.jnp.server.NamingServer.lookup(NamingServer.java:254)
[UniqueKey]     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:29
5)
[UniqueKey]     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:27
9)
[UniqueKey]     at javax.naming.InitialContext.lookup(Unknown Source)
[UniqueKey]     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:36
7)
[UniqueKey]     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:40
3)
[UniqueKey]     at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:27
9)
[UniqueKey]     at javax.naming.InitialContext.lookup(Unknown Source)
[UniqueKey]     at se.benefit.util.UniqueKeyBean.getNextKey(UniqueKeyBean.java:2
12)
[UniqueKey]     at se.benefit.util.UniqueKeyBean.getNextKey(UniqueKeyBean.java:1
75)
[UniqueKey]     at se.benefit.util.UniqueKeyBean.getNextKey(UniqueKeyBean.java:1
61)
[UniqueKey]     at java.lang.reflect.Method.invoke(Native Method)
[UniqueKey]     at org.jboss.ejb.EntityContainer$ContainerInterceptor.invoke(Ent
ityContainer.java:722)
[UniqueKey]     at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke
(EntitySynchronizationInterceptor.java:208)
[UniqueKey]     at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(Entity
InstanceInterceptor.java:186)
[UniqueKey]     at org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxIntercept
orCMT.java:133)
[UniqueKey]     at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(Tx
InterceptorCMT.java:378)
[UniqueKey]     at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCM
T.java:99)
[UniqueKey]     at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInte
rceptor.java:137)
[UniqueKey]     at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.ja
va:195)
[UniqueKey]     at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:323
)
[UniqueKey]     at org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke
(JRMPContainerInvoker.java:381)
[UniqueKey]     at java.lang.reflect.Method.invoke(Native Method)
[UniqueKey]     at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
[UniqueKey]     at sun.rmi.transport.Transport$1.run(Unknown Source)
[UniqueKey]     at java.security.AccessController.doPrivileged(Native Method)
[UniqueKey]     at sun.rmi.transport.Transport.serviceCall(Unknown Source)
[UniqueKey]     at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Sou
rce)
[UniqueKey]     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unkn
own Source)
[UniqueKey]     at java.lang.Thread.run(Unknown Source)
 
/Lennart
----- Original Message -----
Sent: Thursday, March 08, 2001 12:06 AM
Subject: Ref to external ejb - deployd in non jboss container

How is this set up?
 
I have a bean which need to call an ejb that is deployed in another ejb server (in this case Ejipt but could/will be Weblogic).
 
How am i doing the lookup? I guess i have to use ctx = new InitialContext() to get the context to use when looking up the bound ref in jboss, but how am i linked to the other server? When/how is Ecs:Checkout.CheckoutRegisterHome bound in jboss jndi?
 
I did a test where i had a mben which during startup made a lookup to this other ejb server and then stored a ref to Ecs.Checkout.CheckoutRegisterHome in jboss jndi, which i later on could use through normal env lookup. But the most correct way ought to be to use ejb-ref-name and jndi-name descriptions in the xml-files. But i can't get it to work.
 
Thanks,
Lennart
 
My jboss.xml looks like this:
<?xml version="1.0" encoding="UTF-8" ?>
-  <jboss>
-    <enterprise-beans>
-      <entity>
         <ejb-name>UniqueKey</ejb-name>
           <jndi-name>ejb/UniqueKey</jndi-name>
-          <ejb-ref>
             <ejb-ref-name>ejb/CheckoutRegister</ejb-ref-name>
             <jndi-name>ejipt://lks145:2323/Ecs.Checkout.CheckoutRegisterHome</jndi-name>
       </ejb-ref>
   </entity>
 </enterprise-beans>
</jboss>
 
Part of my ejb-jar.xml looks like this:
<?xml version="1.0" encoding="UTF-8" ?>
-    <ejb-jar>
       <display-name />
-        <enterprise-beans>
-          <entity>
             <description>UniqueKey is the implementation of the UniqueKey component.</description>
             <ejb-name>UniqueKey</ejb-name>
             <home>se.benefit.util.UniqueKeyHome</home>
             <remote>se.benefit.util.UniqueKey</remote>
             <ejb-class>se.benefit.util.UniqueKeyCMP</ejb-class>
             <persistence-type>Container</persistence-type>
             <prim-key-class>se.benefit.util.UniqueKeyPK</prim-key-class>
             <reentrant>True</reentrant>
-               --- skip ---
-            <ejb-ref>
              <ejb-ref-name>ejb/CheckoutRegister</ejb-ref-name>
              <ejb-ref-type>Entity</ejb-ref-type>
              <home>CheckoutRegisterHome</home>
              <remote>CheckoutRegister</remote>
          </ejb-ref>
        </entity>
       --- skip ---
-  </ejb-jar>

Reply via email to