EJB3 with Eclipse
pipo323400 Jan 4, 2008 10:27 AMHi,
We are trying to work a simple EJB 3 application. Our goal is to post a stateless bean and acces to it from a web application.
We are developing it with eclipse. Here is the program structure:
-A java application that contains two interfaces and the bean (also a metainf) to implement the stateless bean.
-A web application 2.4 (we had tried also with 2.5).
We deploye the bean as a jar in the jboss, and it seems to recognize it. But when we try to acces with the web app (via servlet) we got an java.nullPointerException.
Ejb Code:
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.ejb.Remote;
/**
* This is the business interface for Carp enterprise bean.
*/
@Remote
public interface EjbRemote {
boolean doStatement(String queryName) throws SQLException;
ResultSet doQuery(String query) throws SQLException;
void printQuery(String query);
}
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.ejb.Local;
@Local
public interface EjbLocal {
boolean doStatement(String queryName) throws SQLException;
ResultSet doQuery(String query) throws SQLException;
void printQuery(String query);
}
import javax.annotation.Resource;
import javax.ejb.Stateless;
import javax.sql.DataSource;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
@Stateless
public class EjbBean implements EjbLocal, EjbRemote {
@Resource(mappedName = "TACWDS") DataSource TACWDS;
public EjbBean() {
}
public boolean doStatement(String query) {
//TODO implement doStatement
return false;
}
public final ResultSet doQuery(String query) throws SQLException {
System.out.println("Esecuzione query : " + query);
Connection conn = TACWDS.getConnection();
Statement stm = conn.createStatement();
return stm.executeQuery(query);
}
public final void printQuery(String query) {
System.out.println("Esecuzione query : " + query);
}
}
Servlet Code:
public class appServlet extends HttpServlet {
@EJB EjbLocal sless;
public void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException{
resp.setContentType("text/html");
PrintWriter out = resp.getWriter();
//sless.printQuery("SELECT * FROM FOO");
System.out.println("sless state: "+sless);
}
}