vincejin
05-02-2009, 11:10
Salve
Combatto con questo problema da una settimana.. Aiutatemi please..
Allora..
Quì vi posto una seplice prova..
Ho fatto un un nuovo progetto Java Enterprice e vorrei semplicemente fare questo
Dalla home chiamo una servlet che chiama i sessionbean per prendere una cosa da db e poi la mette in sessione e reindirizza a una jsp che stampa...
Nel progetto ejb faccio fare a netbeans gli entity da db (ho già fatto dbschema e persistence unit) poi gli faccio fare i sessionbean (facade).
Insomma quì fà tutto lui..
Nel war creo la servlet ma poi quando faccio deploy mi dà
Deploying application in domain failed; Error loading deployment descriptors for module [Prova-war] -- Cannot resolve reference Unresolved Ejb-Ref TestSrvlet/pfl@jndi: @null@bean.ProvaFacadeLocal@Session@null
C:\Users\Jin\Documents\NetBeansProjects\Prova\Prova-war\nbproject\build-impl.xml:556: The module has not been deployed.
BUILD FAILED (total time: 1 second)
Vi mostro gli altri codici
Bean Locale
package bean;
import entity.Prova;
import java.util.List;
import javax.ejb.Local;
/**
*
* @author Jin
*/
@Local
public interface ProvaFacadeLocal {
void create(Prova prova);
void edit(Prova prova);
void remove(Prova prova);
Prova find(Object id);
List<Prova> findAll();
}
Stateless
package bean;
import entity.Prova;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
/**
*
* @author Jin
*/
@Stateless
public class ProvaFacade implements ProvaFacadeLocal {
@PersistenceContext
private EntityManager em;
public void create(Prova prova) {
em.persist(prova);
}
public void edit(Prova prova) {
em.merge(prova);
}
public void remove(Prova prova) {
em.remove(em.merge(prova));
}
public Prova find(Object id) {
return em.find(Prova.class, id);
}
public List<Prova> findAll() {
return em.createQuery("select object(o) from Prova as o").getResultList();
}
}
L'entity ve lo risparmio perchè è banale
Servlet
public class TestSrvlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@EJB ProvaFacadeLocal pfl=null;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
pfl.create(new Prova(1) );
request.getSession(true).setAttribute("a", pfl.find(1));
response.sendRedirect("/jsp/prova.jsp");
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
JSP
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Pagina di Prova</h1>
<%
out.println(request.getSession(true).getAttribute("a"));
%>
</body>
</html>
HO cercato su tutti i forum (chiaramente in inglese) di questo mondo.. ma non riesco a risolvere..
Vi prego aiutooooo :muro: :muro:
Combatto con questo problema da una settimana.. Aiutatemi please..
Allora..
Quì vi posto una seplice prova..
Ho fatto un un nuovo progetto Java Enterprice e vorrei semplicemente fare questo
Dalla home chiamo una servlet che chiama i sessionbean per prendere una cosa da db e poi la mette in sessione e reindirizza a una jsp che stampa...
Nel progetto ejb faccio fare a netbeans gli entity da db (ho già fatto dbschema e persistence unit) poi gli faccio fare i sessionbean (facade).
Insomma quì fà tutto lui..
Nel war creo la servlet ma poi quando faccio deploy mi dà
Deploying application in domain failed; Error loading deployment descriptors for module [Prova-war] -- Cannot resolve reference Unresolved Ejb-Ref TestSrvlet/pfl@jndi: @null@bean.ProvaFacadeLocal@Session@null
C:\Users\Jin\Documents\NetBeansProjects\Prova\Prova-war\nbproject\build-impl.xml:556: The module has not been deployed.
BUILD FAILED (total time: 1 second)
Vi mostro gli altri codici
Bean Locale
package bean;
import entity.Prova;
import java.util.List;
import javax.ejb.Local;
/**
*
* @author Jin
*/
@Local
public interface ProvaFacadeLocal {
void create(Prova prova);
void edit(Prova prova);
void remove(Prova prova);
Prova find(Object id);
List<Prova> findAll();
}
Stateless
package bean;
import entity.Prova;
import java.util.List;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
/**
*
* @author Jin
*/
@Stateless
public class ProvaFacade implements ProvaFacadeLocal {
@PersistenceContext
private EntityManager em;
public void create(Prova prova) {
em.persist(prova);
}
public void edit(Prova prova) {
em.merge(prova);
}
public void remove(Prova prova) {
em.remove(em.merge(prova));
}
public Prova find(Object id) {
return em.find(Prova.class, id);
}
public List<Prova> findAll() {
return em.createQuery("select object(o) from Prova as o").getResultList();
}
}
L'entity ve lo risparmio perchè è banale
Servlet
public class TestSrvlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@EJB ProvaFacadeLocal pfl=null;
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
pfl.create(new Prova(1) );
request.getSession(true).setAttribute("a", pfl.find(1));
response.sendRedirect("/jsp/prova.jsp");
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
JSP
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Pagina di Prova</h1>
<%
out.println(request.getSession(true).getAttribute("a"));
%>
</body>
</html>
HO cercato su tutti i forum (chiaramente in inglese) di questo mondo.. ma non riesco a risolvere..
Vi prego aiutooooo :muro: :muro: