quizfrage - Persitence Api und Session Bean

Allgemeine Themen rund um dem Appl.-Server GlassFish

Moderator: wegus

Antworten
jangonetbeans

quizfrage - Persitence Api und Session Bean

Beitrag von jangonetbeans » 16.03.2008, 16:39

hallo alle miteinander


habe folgendes problem habe lösung aus dem buch Java EE 5.

was stimmt daran nicht.

Entity Class:

/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package at.mitarbeiterjango;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;

/**
*
* @author HP_Besitzer
*/
@Entity
@Table(name = "adresses")
@NamedQueries({@NamedQuery(name = "Adresses.findById", query = "SELECT a FROM Adresses a WHERE a.id = :id"), @NamedQuery(name = "Adresses.findByFirstname", query = "SELECT a FROM Adresses a WHERE a.firstname = :firstname"), @NamedQuery(name = "Adresses.findByLastname", query = "SELECT a FROM Adresses a WHERE a.lastname = :lastname")})
public class Adresses implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "id", nullable = false)
private Integer id;
@Column(name = "firstname")
private String firstname;
@Column(name = "lastname")
private String lastname;

public Adresses() {
}

public Adresses(Integer id) {
this.id = id;
}

public Adresses(Integer id,String name, String zuname) {
this.id = id;
this.firstname=name;
this.lastname=zuname;
}

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getFirstname() {
return firstname;
}

public void setFirstname(String firstname) {
this.firstname = firstname;
}

public String getLastname() {
return lastname;
}

public void setLastname(String lastname) {
this.lastname = lastname;
}

@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}

@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Adresses)) {
return false;
}
Adresses other = (Adresses) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}

@Override
public String toString() {
return "at.mitarbeiterjango.Adresses[id=" + id + "]";
}

}

Session Bean:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/

package at.mitarbeiterjango;

import javax.ejb.Stateful;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

/**
*
* @author HP_Besitzer
*/
@Stateful
public class MitarbeiterAdressenBean implements MitarbeiterAdressenRemote {


@PersistenceContext(unitName="masterclassEjbPersistence")
private EntityManager manager;

public void speichere(int id, String name, String zuname) {
Adresses adr = new Adresses(id,name,zuname);
manager.persist(adr);

}

public String getName(int id) {
String queryString ="Select * from adresses where id="+id;
Query query =manager.createQuery(queryString);
Adresses adresse = (Adresses) query.getSingleResult();
return adresse.getLastname();
}


// Add business logic below. (Right-click in editor and choose
// "EJB Methods > Add Business Method" or "Web Service > Add Operation")

}

und Servlet Aufruf ist folgender:
im Klassen Rumpf ist deklariert :
@EJB
private MitarbeiterAdressenRemote mitarbeiterAdressenBean;


im doget
mitarbeiterAdressenBean.speichere(2112, "fritz", "müller");

mitarbeiterAdressenBean.getName(1);

wo kann da der fehler liegen das logfile sagt NoClassDefFoundError !?!?

Logfile
[#|2008-03-16T17:19:50.205+0100|WARNING|sun-appserver9.1|javax.enterprise.system.stream.err|_ThreadID=14;_ThreadName=httpWorkerThread-4848-1;_RequestID=31c7663b-734b-47d4-a495-35df25182bf4;|java.lang.NoClassDefFoundError: org/dom4j/DocumentException
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:130)
at com.sun.enterprise.server.PersistenceUnitLoaderImpl.load(PersistenceUnitLoaderImpl.java:149)

big_fish
Beiträge: 123
Registriert: 21.07.2006, 15:37
Wohnort: Nürnberg
Kontaktdaten:

Beitrag von big_fish » 17.03.2008, 17:59

Hallo,

Liegt die Datei 'dom4j-1.6.1.jar' auch wirklich im Lib - Verzeichnis der GlassFish - Domäne ?

MfG
big_fish

jangonetbeans

danke für den tip

Beitrag von jangonetbeans » 21.03.2008, 20:50

hab es gar nicht erst probiert. hab einfach den toplink als persistence provider gewählt und es funkt. dafür kann ich keine datensätze suchen :shock:

aber nein war nicht drinnen. aber mir fehlt auch eine datei die zur zeit auf der hibernate site nicht verfügbar ist.

muss an meinen einstellungen arbeiten. siehe allgemeines zur ide thema rookie frage

Antworten