1 Reply Latest reply on Oct 18, 2002 1:27 PM by tony_cala

    JNDI Lookup broken error

    joshdee

      Hello all, I downloaded the JBoss 3.0 Getting Started Guide and its companion templates and example files. Using ant, I was able to build the template/ project and successfully deploy under the JBoss 3.0/Tomcat 4.0.5 pre-integrated bundle. When viewing the logs upon start up, nothing appears out of the ordinary. No errors, warnings, or anything. It's only when I execute the client that things take a turn for the worse. It seems that the client has no problem looking up the TestSession home interface in JNDI. However, once getNewEntityId() is invoked on TestSession, a couple of EJBExceptions are thrown and the stack trace below is dumped. Also below are snippets from ejb-jar.xml, jboss.xml, and jndi.properties. Any insight to why I'm getting this error would do much for the headache I've had since encountering this problem. Using JDK 1.4 on Red Hat, btw. Thanks in advance!


      Stack Trace:
      18:56:03,863 INFO [Server] JBoss (MX MicroKernel) [3.0.3 Date:200209301503] Started in 1m:2s:503ms
      18:56:28,176 INFO [STDOUT] TestSessionBean.ejbCreate()
      18:56:28,623 ERROR [LogInterceptor] TransactionRolledbackException, causedBy:
      javax.ejb.EJBException: JNDI Lookup broken
      at test.entity.TestEntityBean.ejbCreate(TestEntityBean.java:477)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.jboss.ejb.plugins.CMPPersistenceManager.createEntity(CMPPersistenceManager.java:221)
      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.createEntity(CachedConnectionInterceptor.java:270)
      at org.jboss.ejb.EntityContainer.createHome(EntityContainer.java:731)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:1119)
      at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:73)
      at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:209)
      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invokeHome(CachedConnectionInterceptor.java:215)
      at org.jboss.ejb.plugins.AbstractInterceptor.invokeHome(AbstractInterceptor.java:73)
      at org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:88)
      at org.jboss.ejb.plugins.EntityLockInterceptor.invokeHome(EntityLockInterceptor.java:79)
      at org.jboss.ejb.plugins.EntityCreationInterceptor.invokeHome(EntityCreationInterceptor.java:44)
      at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:111)
      at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:178)
      at org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:52)
      at org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:105)
      at org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:1
      29)
      at org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:487)
      at org.jboss.ejb.Container.invoke(Container.java:730)
      at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1058)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
      at org.jboss.invocation.local.LocalInvoker.invoke(LocalInvoker.java:98)
      at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:102)
      at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:77)
      at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:80)
      at org.jboss.proxy.ejb.HomeInterceptor.invoke(HomeInterceptor.java:198)
      at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)
      at $Proxy32.create(Unknown Source)
      at test.session.TestSessionBean.getNewEntityId(TestSessionBean.java:90)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke(StatefulSessionContainer.java:817)
      at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
      at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:266)
      at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:107)
      at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:178)
      at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
      at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:203)
      at org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContainer.java:380)
      at org.jboss.ejb.Container.invoke(Container.java:712)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
      at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:381)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
      at sun.rmi.transport.Transport$1.run(Transport.java:148)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)

      at java.lang.Thread.run(Thread.java:536)
      18:56:28,642 ERROR [LogInterceptor] EJBException:
      javax.ejb.EJBException: Remote exception occured while removing generator session bean: JNDI Lookup broken; nested exception is:
      javax.ejb.EJBException: JNDI Lookup broken
      at test.session.TestSessionBean.getNewEntityId(TestSessionBean.java:108)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.jboss.ejb.StatefulSessionContainer$ContainerInterceptor.invoke(StatefulSessionContainer.java:817)
      at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:130)
      at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
      at org.jboss.ejb.plugins.StatefulSessionInstanceInterceptor.invoke(StatefulSessionInstanceInterceptor.java:266)
      at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:107)
      at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:178)
      at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)
      at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:203)
      at org.jboss.ejb.StatefulSessionContainer.invoke(StatefulSessionContainer.java:380)
      at org.jboss.ejb.Container.invoke(Container.java:712)
      at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)
      at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:381)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)
      at sun.rmi.transport.Transport$1.run(Transport.java:148)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Transport.java:144)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:701)
      at java.lang.Thread.run(Thread.java:536)


      ejb-test.jar/META-INF/jboss.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN" "http://java.sun.com/dtd/ejb-jar_2_0.dtd">

      <ejb-jar >

      No Description.
      <display-name>Generated by XDoclet</display-name>

      <enterprise-beans>

      <!-- Session Beans -->

      <![CDATA[Encapsulates the retrival of DB data]]>
      <display-name>Generates unique Identifier for an Entity</display-name>

      <ejb-name>test/SequenceGenerator</ejb-name>

      test.interfaces.SequenceGeneratorHome
      test.interfaces.SequenceGenerator
      <ejb-class>test.session.SequenceGeneratorBean</ejb-class>
      <session-type>Stateless</session-type>
      <transaction-type>Container</transaction-type>

      <env-entry>
      <env-entry-name>DataSource_Name</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>DefaultDS</env-entry-value>
      </env-entry>




      <![CDATA[Session Bean Template ATTENTION: Some of the XDoclet tags are hidden from XDoclet by adding a "--" between @ and the namespace.]]>
      <display-name>Bug TestSession Bean</display-name>

      <ejb-name>test/TestSession</ejb-name>

      test.interfaces.TestSessionHome
      test.interfaces.TestSession
      <ejb-class>test.session.TestSessionBean</ejb-class>
      <session-type>Stateful</session-type>
      <transaction-type>Container</transaction-type>

      <ejb-ref >
      <ejb-ref-name>ejb/mytest/TestEntity</ejb-ref-name>
      <ejb-ref-type>Entity</ejb-ref-type>
      test.interfaces.TestEntityHome
      test.interfaces.TestEntity
      <ejb-link>test/TestEntity</ejb-link>
      </ejb-ref>

      <resource-ref>
      <res-ref-name>test/Mail</res-ref-name>
      <res-type>javax.mail.Session</res-type>
      <res-auth>Container</res-auth>
      </resource-ref>



      <!--
      To add session beans that you have deployment descriptor info for, add
      a file to your merge directory called session-beans.xml that contains
      the markup for those beans.
      -->

      <!-- Entity Beans -->

      <![CDATA[The Entity bean represents a TestEntity with BMP]]>
      <display-name>TestEntity working on projects to support clients (BMP)</display-name>

      <ejb-name>test/TestBMPEntity</ejb-name>

      test.interfaces.TestBMPEntityHome
      test.interfaces.TestBMPEntity

      <ejb-class>test.entity.TestBMPEntityBMP</ejb-class>
      <persistence-type>Bean</persistence-type>
      <prim-key-class>test.interfaces.TestBMPEntityPK</prim-key-class>
      False

      <env-entry>
      <env-entry-name>SequenceName</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>TestEntity</env-entry-value>
      </env-entry>
      <env-entry>
      <env-entry-name>DataSourceName</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>java:/DefaultDS</env-entry-value>
      </env-entry>




      <![CDATA[The Entity bean represents a TestEntity]]>
      <display-name>TestEntity working on projects to support clients</display-name>

      <ejb-name>test/TestEntity</ejb-name>

      test.interfaces.TestEntityHome
      test.interfaces.TestEntity

      <ejb-class>test.entity.TestEntityCMP</ejb-class>
      <persistence-type>Container</persistence-type>
      <prim-key-class>test.interfaces.TestEntityPK</prim-key-class>
      False
      <cmp-version>2.x</cmp-version>
      <abstract-schema-name>test/TestEntity</abstract-schema-name>
      <cmp-field >
      <![CDATA[Retrieve the TestEntity's id.]]>
      <field-name>id</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[Retrieve the TestEntity's FirstName.]]>
      <field-name>firstName</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[Retrieve the TestEntity's LastName.]]>
      <field-name>lastName</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[Retrieve the TestEntity's Password.]]>
      <field-name>password</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[Retrieve the TestEntity's Email.]]>
      <field-name>email</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[]]>
      <field-name>address</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[]]>
      <field-name>city</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[]]>
      <field-name>zIP</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[]]>
      <field-name>state</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[]]>
      <field-name>country</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[]]>
      <field-name>creationDate</field-name>
      </cmp-field>
      <cmp-field >
      <![CDATA[]]>
      <field-name>modificationDate</field-name>
      </cmp-field>

      <env-entry>
      <env-entry-name>SequenceName</env-entry-name>
      <env-entry-type>java.lang.String</env-entry-type>
      <env-entry-value>TestEntity</env-entry-value>
      </env-entry>

      <ejb-ref >
      <ejb-ref-name>ejb/test/SequenceGenerator</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      test.interfaces.SequenceGeneratorHome
      test.interfaces.SequenceGenerator
      <ejb-link>test/SequenceGenerator</ejb-link>
      </ejb-ref>



      <!--
      To add entity beans that you have deployment descriptor info for, add
      a file to your merge directory called entity-beans.xml that contains
      the markup for those beans.
      -->

      <!--
      Removed for brevity...
      -->

      </enterprise-beans>

      <!-- Relationships -->

      </ejb-jar>



      ejb-test.jar/META-INF/jboss.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <!DOCTYPE jboss PUBLIC "-//JBoss//DTD JBOSS//EN" "http://www.jboss.org/j2ee/dtd/jboss.dtd">



      <enterprise-beans>


      <ejb-name>test/TestBMPEntity</ejb-name>
      <jndi-name>ejb/test/TestBMPEntity</jndi-name>


      <ejb-name>test/TestEntity</ejb-name>
      <jndi-name>ejb/test/TestEntity</jndi-name>



      <ejb-name>test/SequenceGenerator</ejb-name>
      <jndi-name>ejb/test/SequenceGenerator</jndi-name>


      <ejb-name>test/TestSession</ejb-name>
      <jndi-name>ejb/test/TestSession</jndi-name>


      <message-driven>
      <ejb-name>test/TestMessage</ejb-name>
      <destination-jndi-name>queue/testQueue</destination-jndi-name>
      </message-driven>

      </enterprise-beans>

      <resource-managers>
      <resource-manager res-class="javax.mail.Session">
      <res-name>test/Mail</res-name>
      <res-jndi-name>java:Mail</res-jndi-name>
      </resource-manager>
      </resource-managers>




      jboss-3.0.3_tomcat-4.0.5/server/default/conf/jndi.properties:

      java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
      java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
      java.naming.provider.url=localhost