Bonjour
je viens de crée une appli avec 3 couches DTO,DAO, Service en utilisant cxf + jpa hibernate, j'ai un probleme lors de l'execution d'un web service permettant l'enregistrement de données en base, lorsque j'utilise junit pour les test unitaire les methodes exposées marchent, mais quand j'utilise sopaui les données ne sont pas persister en base et je n'ai aucune exception
Voici les methodes + conf
ma declaration d'entitées
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 //entité personne @Entity @Table(name="TG_PERSONNE") @Inheritance(strategy=InheritanceType.JOINED) public class Personne implements Serializable { private static final long serialVersionUID = 1L; @Id @TableGenerator(name="personneGen", allocationSize=1) @GeneratedValue(strategy=GenerationType.TABLE, generator="personneGen") @Column(name="ID_PERSONNE" , columnDefinition="int") private long idPersonne; @Column(name="NOM") private String nom; ... //getter + setter
interface PersonneDAO
implémentation de personnedao
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public interface PersonneDAO { public void ajouterPersonne(Personne personne) throws DaoException ;
ma declaration de service
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 @Repository @Transactional(propagation=Propagation.MANDATORY) public class PersonneDAOImpl implements PersonneDAO { @PersistenceContext(unitName="personne-entite") private EntityManager personneEm; public void ajouterPersonne(Personne personne){ personneEm.persist(personne); }
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 public interface PersonneService{ public enregistrerPersonne(EntreeDTO paramEntree) throws ServiceException; } //------------ @Service public class PersonneServiceImpl implements PersonneService{ @Autowired private PersonneDAO personneDAO; @Transactional(propagation = Propagation.REQUIRED) public enregistrerPersonne(EntreeDTO paramEntree) { try { Personne personne = new Personne() ; personne.setNom("nom"); personne.setPrenom("prenom"); personneDAO.ajouterPersonne(personne) ; } catch (DaoException e) { throw new ServiceException(e.getMessage(), e.getCause()); } }
et puis mon web service
la gestion des clé est faite au moyen d'une table de séquence, a chaque appel du web service elle sincèrement correctement coté sgbd.
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 @Service("personneService") @WebService(serviceName="personneService") public class PersonneServiceWeb { @Autowired private PersonneService personneService; @WebMethod(operationName="ajouterPersonne") public ajouterPersonne( @WebParam(name="EntreeDTO") EntreeDTO paramIn) throws ServiceException { personneService.ajouterPersonne(paramIn); } ... ... }
lors de la réalisation des test unitaire de chaque méthode DAO, DTO + service les données sont correctement sauvegardés en base, le problème survient lors de l’exécution du service, aucune données n'est sauvegardé en base à part l'incrémentation des clé. et il n'y a aucun message d'erreur
Si vous avez une idée je suis preneur Merci d'avance a vous![]()
Partager