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

    java.rmi.ServerException+NullPointerException

    rubia

      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........

        • 1. Re: java.rmi.ServerException+NullPointerException
          sniper

          First of all remove the declarations

          public Integer id;
          public String name;

          Even if this is not the problem it is not correct cause CMP is all about the container understanding the persistent fields by himself and not giving them to him.

          Try with this change and say if the problem continues