1 Reply Latest reply on Apr 7, 2003 5:21 AM by George

    java.rmi.ServerException+NullPointerException

    rubia Newbie

      Using jboss jboss-3.0.6_tomcat-4.1.18 jdk1.3

      following code compile completely fine packed in a jar file with META-INF\ejb-jar.xml,deployed successfully in server\default\deploy
      at deployment time table created successfuly message but At runtime
      i got error......

      public interface HelloEntityObject extends EJBObject
      {
      public void setName(String name) throws RemoteException;
      public String getName() throws RemoteException;
      }


      public interface HelloEntityHome extends EJBHome
      {
      public HelloEntityObject create(Integer id)
      throws RemoteException,CreateException;
      public HelloEntityObject findByPrimaryKey(Integer pk)
      throws FinderException,RemoteException;
      }


      public abstract class HelloEntityBean implements EntityBean
      {
      public Integer id;
      public String name;

      public Integer ejbCreate(Integer id) throws CreateException
      { System.out.println("in ejbCreate");
      this.setId(id);
      return null;
      }


      public abstract void setId(Integer id);
      public abstract Integer getId();
      public abstract void setName(String name);
      public abstract String getName();

      public void setEntityContext(EntityContext ctx){System.out.println("in EntityContext");}
      public void unsetEntityContext(){}
      public void ejbPostCreate(Integer id){System.out.println("in ejbPostCreate");}
      public void ejbPassivate(){}
      public void ejbLoad(){}
      public void ejbRemove(){}
      public void ejbStore(){}

      }

      public class EntityClient
      {
      public static void main(String ar[])
      {
      try{
      Context jndictx=new InitialContext();
      System.out.println("initialContext Created");
      Object ref=jndictx.lookup("HelloEntityObject");
      System.out.println("in lookup");
      HelloEntityHome home=(HelloEntityHome)PortableRemoteObject.narrow(ref,HelloEntityHome.class);
      System.out.println("got object");
      HelloEntityObject entity_1=home.create(new Integer(3));
      System.out.println("object created");
      entity_1.setName("EJB");
      System.out.println("The Name has been set");

      Integer pk=new Integer(3);
      HelloEntityObject entity_2=home.findByPrimaryKey(pk);
      System.out.println("The Name Is:"+entity_2.getName());

      }

      catch(Exception re){System.out.println(re);re.printStackTrace();}

      jndi.properties file text:
      ==============================

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


      ejb-jar.xml contents:
      ===========================
      <!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>
      <enterprise-beans>

      <ejb-name>HelloEntityObject</ejb-name>
      HelloEntityHome
      HelloEntityObject
      <ejb-class>HelloEntityBean</ejb-class>
      <persistence-type>Container</persistence-type>
      <prim-key-class>java.lang.Integer</prim-key-class>
      False
      <abstract-schema-name>HelloEntityObject</abstract-schema-name>
      <cmp-field>
      <field-name>id</field-name>
      </cmp-field>
      <cmp-field>
      <field-name>name</field-name>
      </cmp-field>
      <primkey-field>id</primkey-field>
      <security-identity><use-caller-identity/></security-identity>

      </enterprise-beans>
      </ejb-jar>


      Exception:
      ================
      initialContext created
      in lookup
      got object
      java.rmi.ServerException: RemoteException occured in server thread; nested exception is:
      java.rmi.ServerException: EJBException:; nested Exception is:
      javax.ejb.EJBException: null; CausedByException is: null
      jboss consol exception:
      ===========================
      INFO [STDOUT] in ejbCreate
      ERROR [org.jboss.ejb.plugins.LogInterceptor] EJBException, causedBy:
      java.lang.NullPointerException
      at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge.getEntityState(JDBCEntityBridge.java:598)
      at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCEntityBridge.isCreated(JDBCEntityBridge.java:460)
      at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCAbstractCMPFieldBridge.setValue(JDBCAbstractCMPFieldBridge.java:172)
      at org.jboss.ejb.plugins.cmp.bridge.EntityBridgeInvocationHandler.invoke(EntityBridgeInvocationHandler.java:126)
      at org.jboss.proxy.compiler.Runtime.invoke(Runtime.java:59)
      at HelloEntityBean$Proxy.setId()
      at HelloEntityBean.ejbCreate(HelloEntityBean.java:14)
      at java.lang.reflect.Method.invoke(Native Method)
      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 java.lang.reflect.Method.invoke(Native Method)
      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:207)
      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:90)
      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)


      Command Prompt commandline access,no browser is using,
      So Whats the problem,can anyone tell me........