Bonjour à vous,

Voila je débute avec JPA (implementation TopLink) est j'ai quelque soucis que je n'arrive pas à résoudre malgrès mes recherches sur le net.

J'ai commencé avec une entité bateau : Person

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
 
@Entity
@Table(name = "PERSONNE")
public class Person implements Serializable {
 
	private static final long serialVersionUID = 6471621102914689766L;
 
	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE)
	@Column(name = "PERSONNE_ID", length = 8)
	private Integer id;
 
	@Version
	@Column(name = "PERSONNE_VERSION", length = 4)
	private Integer version;
 
	@Column(name = "PERSONNE_NOM", length = 35)
	private String lastname;
 
	@Column(name = "PERSONNE_PRENOM", length = 30)
             private String firstname;
 
	@Temporal(TemporalType.DATE)
	@Column(name = "PERSONNE_DTNAISS")
	private Date date_of_birth;
 
	@Transient
	private Integer age;
 
 
	//Constructeur
             public Person() {}
 
	//Constructeur POJO
	public Person(String firstname, String lastname, Date dtBirth) {
		setFirstname(firstname);
		setLastname(lastname);
		setDate_of_birth(dtBirth);
	}
 
 
	//Méthodes
	...	
	//Getters and Setters
            ...	
}
Mon Stateless Bean
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
@Stateless(name = "PersonSB", mappedName= "ejb/statless/Person")
public class PersonBean implements PersonRemote {
 
	@PersistenceContext(unitName="XP-Customer")
	private EntityManager em;
 
	@Override
	public Person createPerson(Person person) {
 
		em.persist(person);
		return person;
	}
 
}
L'interface PersonRemote
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
@Remote
public interface PersonRemote {
 
	Person createPerson(Person person);
 
}
Le persistence.xml
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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" version="1.0">
	<persistence-unit name="XP-Customer" transaction-type="JTA">
 
		<provider>oracle.toplink.essentials.PersistenceProvider</provider>
		<jta-data-source>jdbc/lmsi</jta-data-source>
 
		<class>com.lmsi.easybms.entity.person.Person</class>
		<class>com.lmsi.easybms.entity.customer.CustomerAccount</class>
		<class>com.lmsi.easybms.entity.customer.Customer</class>
		<class>com.lmsi.easybms.entity.customer.AccountType</class>
 
	<properties>
		<property name="toplink.ddl-generation"
                                       value="drop-and-create-tables"/>
		<property name="toplink.create-ddl-jdbc-file-name" 
                                        value="create.sql"></property>
		<property name="toplink.drop-ddl-jdbc-file-name" 
                                        value="drop.sql"/>
		<property name="toplink.logging.level" value="FINEST"/>
	</properties>
 
	</persistence-unit>
</persistence>
Mon problème est le suivant, j'utilise Eclipse/Dali pour coder mes entités et quand j'essai de générer la DDL la réponse de la console est :
Exception in thread "main" javax.persistence.PersistenceException: No Persistence provider for EntityManager named XP-Customer: No META-INF/persistence.xml was found in classpath.

at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:154)
at org.eclipse.jpt.eclipselink.core.ddlgen.Main.execute(Main.java:77)
at org.eclipse.jpt.eclipselink.core.ddlgen.Main.main(Main.java:65)
J'ai essayé pas mal de truc mais rien ni fait, j'ai aussi compilé le projet puis utilisé le "Verifier" de glassfish et lui me dit :
----------------------------------
NUMBER OF FAILURES/WARNINGS/ERRORS
----------------------------------
# of Failures : 1
# of Warnings : 0
# of Errors : 0

-----------------------------
RESULTS FOR EJB-RELATED TESTS
-----------------------------

--------------
FAILED TESTS :
--------------

Test Name : tests.ejb.ejb30.PUMatchingEMandEMFRefTest
Test Assertion : For every entity manager referenced in the application, there must be a matching persistence unit defined using META-INF/persistence.xml file. Please refer to EJB 3.0 Persistence API Specification section #6.2 for further information.
Test Description : For [ lmsi#stateless.jar#PersonSB ]
There is no unique persistence unit found by name [ XP-Customer ] in the scope of this component.
Persistence units that are visible to this component are [ ].


----------------------------------
END OF STATIC VERIFICATION RESULTS
----------------------------------
Voila si quelqu'un peut me dire ou je fait une erreur, et ce que je n'ai pas compris ca serais sympa, parceque je commence a m'arracher les cheveux.

Merci