Obtenir les infos sur la dataSource/persistence.xml ? [Java JPA] - Java - Programmation
Marsh Posté le 02-07-2007 à 19:29:08
euh, tu sais récupérer le DataSource ou c'est ça qui te pose problème?
Marsh Posté le 02-07-2007 à 20:20:37
C'est ce qui me pose problème.
Je ne trouve pas la méthode adéquate. Si tu peux m'aider, ça serait sympa. Ca me permetrait d'avancer !
Marsh Posté le 02-07-2007 à 21:36:33
en général on récupere ça par jndi, ou par injection, si t'es en j2ee5 et que t'as la chance de bosser avec un serveur qui comprenne ça...
mais si tu utilises jpa, qqchose me dit que ptet tu devrais pas passer ta ds a jasperreports, mais plutot un truc capable de causer a ton systeme jpa
Marsh Posté le 03-07-2007 à 08:45:58
En fait sous Ireport, je fais des requêtes SQL classiques (choix de mon responsable de stage, vu la complexité des requêtes : jointures,conditions...) Donc je ne cherche pas à passer une connexion JPA classiques, mais plutot les paramètres de la connexion à la BD présente dans le persistence.xml.
Peut être que PersistenceUnitInfo.getProperties() est une solution, je regarde.
Marsh Posté le 03-07-2007 à 10:02:18
ha ben PersistenceUnitInfo.getJtaDataSource() hein
(je connais pas c't'api)
Marsh Posté le 03-07-2007 à 11:08:42
En fait ça marche pas, ce que je voulais faire.
Et quand je parlais de persistanceUnitInfo..., il s'agit de javax.persistance.PersistenceUnitInfo (interface). Mais de ce coté là, c pas ça encore. Je suis ouvert à toute solution ! Merci
Marsh Posté le 03-07-2007 à 11:48:33
ben t'arrives a recuperer une PersistenceUnitInfo ou bien ?
Marsh Posté le 03-07-2007 à 14:11:32
Nan, ça plante à chaque fois. Je suis en stage, et je débute sur l'API JPA... Donc je suis pas hyper au point sur ce sujet.
Marsh Posté le 03-07-2007 à 14:41:53
ça "plante"?
et ton maitre de stage, il ferait pas un peu son boulot, au lieu de te laisser trainer sur des forums et bosser gratuit?
Marsh Posté le 03-07-2007 à 15:20:10
Que veux tu. Sois je suis pas doué. Mais bon, j'essaye plein de trucs.
Et mon maitre est absent ! Merci qd même.
Marsh Posté le 05-07-2007 à 08:33:22
C'était tout simple, je sais pas pourquoi j'ai autant galéré.
Voici la solution
Connection conn = null;
Context ctx = new InitialContext();
// On recherche la dataSource à partir de son nom
DataSource ds = (DataSource) ctx.lookup("jdbc/...));
// On vérifie que la dataSource existe
if (ds != null) {
conn = ds.getConnection();
}
Marsh Posté le 05-07-2007 à 11:10:27
bah alors qu'est-ce que je disais jndi
si la ds n'existe pas, t'aurais une exception
( NameNotFoundException je crois)
Marsh Posté le 02-07-2007 à 18:36:19
Bonjour
Je suis en stage, et je ne maitrise pas complètement J2EE 5 et particulièrement JPA. Je cherche une méthode permettant d'obtenir la dataSource de l'application sans utiliser de valeurs en dur du type (jdbc:....). Je cherche comment obtenir les informations présent dans persistence.xml (la dataSource) de manière dynamique (méthode de type DataSource maDataSource = .....getDataSource ()...)
Je ne peux pas la mettre en dur, car je dois ensuite la transmettre en "paramètre" à une autre application (Jasper/Ireport) via une méthode de la librairie Jasper. Et les règles de développement imposé pour l'application dise que ce genre de données ne doit pas être en dur.
J'espère être assez compréhensible.
Et que vous pourrez m'aider ?