Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

potrebna pomoc za EJB3.0

[es] :: Java :: potrebna pomoc za EJB3.0

[ Pregleda: 2288 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

miodragjovanovic
Miodrad Jovanovic

Član broj: 168099
Poruke: 3
*.ptt.yu.



Profil

icon potrebna pomoc za EJB3.004.01.2008. u 22:56 - pre 198 meseci
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
 
Odgovor na temu

anon315

Član broj: 315
Poruke: 1657
*.adsl-3.sezampro.yu.



+13 Profil

icon Re: potrebna pomoc za EJB3.004.01.2008. u 23:35 - pre 198 meseci
Pored <class> atributa, dodaj i <jar-file> atribut, jer ti nije u classpathu. Ili jpa entitet stavi u okviru ejb session projekta (jara)
 
Odgovor na temu

miodragjovanovic
Miodrad Jovanovic

Član broj: 168099
Poruke: 3
89.110.199.*



Profil

icon Re: potrebna pomoc za EJB3.005.01.2008. u 18:34 - pre 198 meseci
Citat:
Vanja Petreski: Pored <class> atributa, dodaj i <jar-file> atribut, jer ti nije u classpathu. Ili jpa entitet stavi u okviru ejb session projekta (jara)



Zaista, puno hvala na brzom odgovoru

probao sam tvoje resenje i na drugi nacin da ga ubacim u session.jar radi (ali onda svaki put kada napravim neku izmenu moram rucno da ga menjam ear fajl, a i pri EJBQL upitu mi javlja da ne moze da nadje tabelu Tri ), dok na prvi nacin nisam uspeo da ga nateram da radi

evo sadasnjeg izgleda persistence.xml fajla

<?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">
<jta-data-source>java:/DefaultDS</jta-data-source>
<jar-file>entity.jar</jar-file>
<class>entity.Tri</class>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.SAPDBDialect"/>
</properties>
</persistence-unit>
</persistence>

sada prijavljuje
--- MBeans waiting for other MBeans ---
ObjectName: jboss.j2ee:ear=proba4.ear,jar=session.jar,name=IzBazeBean,service=EJB3
State: NOTYETINSTALLED
I Depend On:
persistence.units:unitName=entity

--- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
ObjectName: persistence.units:unitName=entity
State: NOTYETINSTALLED
Depends On Me:
jboss.j2ee:ear=proba4.ear,jar=session.jar,name=IzBazeBean,service=EJB3



zatim sam dodao u session-u gde koristim Persistence sledece

1) @PersistenceContext(name = "entity", unitName = "entity")
ili samo
2) @PersistenceContext(name = "entity")

ali i dalje javlja istu gresku ili u ovom drugom(2)) slucaju
Illegal @PersistenceUnit on javax.persistence.EntityManager session.IzBazeBean.em :There is no default persistence unit in this deployment.




i jos samo nesto da li su neophodni <jta-data-source> i <properties>
i posto koristim Oracle bazu da li je <properties> u redu ili da ga promenim sa sledecim

<properties>
<property name="toplink.platform.class.name" value="oracle.toplink.essentials.platform.database.oracle.OraclePlatform"/>
</properties>


Hvala jos jednom
 
Odgovor na temu

[es] :: Java :: potrebna pomoc za EJB3.0

[ Pregleda: 2288 | Odgovora: 2 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.