Sono in fase di sviluppo di un'applicazione distribuita con tanto di database SQL, composta da un modulo WEB (pagine html, JSP e Servlet) e un modulo SERVER (Session bean ed Entity bean).
Come DBMS uso MySQL e come Application server GlassFish.
Ho prima creato la parte web e il programma gira tranquillamente, quindi sono passato all'implementazione degli entity bean (uno per ogni tabella del db) in un modulo a parte che hanno preso il posto delle classi entità che prima erano nel modulo web, quindi ho cambiato tutti i collegamenti a tale classi.
Fino a qui tutto bene, l'applicazione gira e viene deployata; dopodichè ho cercato di implementare il primo Session Bean che ho chiamato "GestoreLogin" che implementa "GestoreLoginLocal", l'applicazione viene compilata senza errori ma quando la vado ad eseguire mi dà l'errore "...\build-impl.xml:268: The module has not been deployed. ERRORE NELLA COSTRUZIONE (tempo totale: 6 secondi)"
cioè non me lo fa deployare.
Ho creato un'unità di persistenza (Persistence Unit) e un Connection Pool come richiesto dalle specifiche ma il problema persiste, però sono arrivato a capire la fonte dell'errore, è il PersistenceContext difatti basta che elimino solo l'annotazione che uso nel session bean, ossia @PersistenceContext e l'applicazione me la deploya altrimenti no.
Questa è la classe del bean:
codice:
package agenzia.ejb;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import agenzia.jpa.Personale;
@Stateless
public class GestoreLogin implements GestoreLoginLocal {
@PersistenceContext
private EntityManager em;
public Personale executeLogin(String username, String password) {
Personale p = em.find(Personale.class, username);
if(p == null){
return null;
}
else{
if (!(p.getPassword().equals(password)))
return null;
else{
return p;
}
}
}
}
Dove sbaglio? Quale potrebbe essere l'errore?
Ripeto, basta che tolgo @PersistenceContext e l'applicazione parte, ho pensato che potesse mancare qualche libreria, non saprei..
Help me please!