Session klasa ne moze da nadje entity klasu
napisao sam najjednostavniji moguci ejb3.0 projekat. Ispisuje string u browseru tako sto jsp poziva metod iz session-a koji vraca obicniji String, i on radi. Zatim sam napravio jos jednu session klasu koja preuzima neke podatke iz baze tj iz entity-ja (JPA), ali njene metode ne pozivam ni u jednom JSP-u. Eclipse mi je sam generisao ear fajl i deploy-ovao sam ga na JBoss 4.2.2GA server. Medjutim sada vise ni onaj stari jsp nece da radi. U eclipse-u mi ne prijavljuje nikakvu gresku. Kada sam pokusao da debagujem na serveru izbacio mi je sledecu gresku:
22:26:10,046 ERROR [URLDeploymentScanner] Incomplete Deployment listing:
--- MBeans waiting for other MBeans ---
ObjectName: jboss.j2ee:service=EJB3,module=session.jar
State: FAILED
Reason: java.lang.NoClassDefFoundError: entity/Tri
--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: jboss.j2ee:service=EJB3,module=session.jar
State: FAILED
Reason: java.lang.NoClassDefFoundError: entity/Tri
session.jar(session projekat) i entity.jar(JPA projekat) se nalaze u ear-fajlu, zajedno sa web.war(dinamicki web projekat).
session projektu sam preko Java Build Path/Projects uvezao entity projekat. Slicno sam uradio i za web projkat
koristim java5ee, eclipse3.3, JBoss4.2.2GA AS
Zaista ne znam u cemu je problem. Moguce da nesto fali u deployment descriptor-ima. Mozda neki red u persistence.xml. Ukoliko neko moze neka pomogne.
evo koda programa
APPLICATION.XML
<?xml version="1.0" encoding="UTF-8"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:application="http://java.sun.com/xml/ns/javaee/application_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd" id="Application_ID" version="5">
<display-name>proba</display-name>
<module>
<ejb>session.jar</ejb>
</module>
<module>
<web>
<web-uri>web.war</web-uri>
<context-root>proba</context-root>
</web>
</module>
</application>
JPA project (entity.jar)
package entity;
import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class Tri implements Serializable {
@Id
private String id;
private String ime;
private String mesto;
private static final long serialVersionUID = 1L;
public Tri() {
super();
}
.....get, set.....
}
PERSISTENCE.XML
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="entity">
<class>entity.Tri</class>
</persistence-unit>
</persistence>
Session project (session.jar)
package session;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import entity.*;
@Stateless
public class IzBazeBean implements IzBaze {
@PersistenceContext
protected EntityManager em;
public IzBazeBean(){}
public Tri vrati(){
return (Tri) em.find(Tri.class, "10");
}
}
EJB-JAR.XML NEMAM
ukoliko je jos potrebno mogu dodati jos koda: drugu session klasu, jsp,...
Unapred zahvalan