Hi All,
I came across the following EJBException message when trying to retrieve an Employee record (entity bean in EJB 3.0) after having successfully added it into EMPLOYEE table using stateless session bean:
*10/03/2009 8:53:14 PM com.sun.enterprise.appclient.MainWithModuleSupport <init>*
WARNING: ACC003: Application threw an exception.
javax.ejb.EJBException: nested exception is: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException: null; nested exception is:
java.lang.NullPointerException
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.RemoteException: null; nested exception is:
java.lang.NullPointerException
at com.sun.corba.ee.impl.javax.rmi.CORBA.Util.mapSystemException(Util.java:243)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.privateInvoke(StubInvocationHandlerImpl.java:205)
at com.sun.corba.ee.impl.presentation.rmi.StubInvocationHandlerImpl.invoke(StubInvocationHandlerImpl.java:152)
at com.sun.corba.ee.impl.presentation.rmi.bcel.BCELStubBase.invoke(BCELStubBase.java:225)
at ejb.__EmployeeRemote_Remote_DynamicStub.findEmployee(ejb/__EmployeeRemote_Remote_DynamicStub.java)
at ejb._EmployeeRemote_Wrapper.findEmployee(ejb/_EmployeeRemote_Wrapper.java)
at client.EmployeeApplicationClient.printEmployee(EmployeeApplicationClient.java:608)
at client.EmployeeApplicationClient.main(EmployeeApplicationClient.java:55)
Below is the code snippets of EmployeeApplicationClient.java:
public class EmployeeApplicationClient {
@EJB
private static EmployeeRemote employeebean1;
@EJB
private static EmployeeRemote employeebean2;
public EmployeeApplicationClient() {}
public static void main(String[] args)
{
EmployeeApplicationClient employee_application_client = new EmployeeApplicationClient();
employee_application_client.addEmployee(1, John, Smith);
employee_application_client.printEmployee(1);
}
public void addEmployee(int id, String firstname, String surname)
{
try {
Employee employee1 = new Employee();
employee1.setID(id);
employee1.setfirstname(firstname);
employee1.setsurname(surname);
employeebean1.createEmployee(employee1);
}
catch {.....}
}
public void printEmployee(int employee_id)
{
Employee employee2 = employeebean2.findEmployee(employee_id);
System.out.println("employee Id: " + employeebean2.getId());
System.out.println("employee firstname: " + employeebean2.getfirstname());
System.out.println("employee surname: " + employeebean2.getsurname());
}
}
Using employeebean1/employeebean2 in printEmployee() did not make any difference.
The error message appears to indicate that I have incorrectly structured these methods.
The deployment of EmployeeBean was successful and employee1 is in EMPLOYEE table via SQL query.
I am using JDK1.6.07, Glassfish v2 with MySQL 5.0 and Netbeans 6.1 on Windows XP platform.
Any assistance would be greatly appreciated.
Thanks,
Jack