2010-03-04 2 views
0

Nous utilisons OSGI et souhaitons écrire un JUtit Systemtest. Nous avons un composant qui interagit avec la base de données en utilisant Java Persistence API (JPA). Lorsque nous lançons le test, nous recevons un message d'erreur indiquant que le composant de base de données n'a pas pu être activé.Le test Junit avec Osgi ne démarre pas le composant Jpa

Nous pensons que cette erreur se produit car jpa ne trouve pas le fichier persistence.xml. Mais nous avons essayé de copier le fichier sur tous les emplacements possibles auxquels nous pouvions penser. Chaque fois que la même erreur s'est produite. Est-ce que quelqu'un connaît une solution?

osgi> 10: 03: 49,461 [Composant Resolve Discussion] DEBUG fdssystem.test.SystemTest - a commencé 22 ERROR [SCR] Impossible d'activer par exemple ...

Répondre

0

Aucun fournisseur pour Persistence bus nommé EntityManager. base de données Il n'y a donc pas d'implémentation JPA dans le CLASSPATH. Cela dépend évidemment si "bus.database" est spécifié pour s'exécuter uniquement sur une implémentation JPA spécifique (fournisseur). Essayez d'implémenter votre test système avec Pax Exam.

+0

Que CLASSPATH voulez-vous dire? Et quels fichiers devons-nous entrer ici? Merci pour votre réponse rapide –

+0

Il n'y a qu'un CLASSPATH dans une application Java. Ok, un environnement OSGi a une gestion spéciale pour le chargement des classes, mais de toute façon. Quels pots? l'implémentation Jpa que vous choisissez d'utiliser? DataNucleus, EclipseLink, Hibernate, OpenJPA pour n'en nommer que quelques-uns. – DataNucleus

0

Vous devez définir tous les regroupements requis pour votre test (par exemple, l'ensemble d'implémentation JPA, votre composant, etc.).