Pool de connexion

Pool de connexion - Java - Programmation

Marsh Posté le 20-10-2003 à 10:54:26    

Bonjour,
j'utilise le connexion de pool de Tomcat, ça marche en faisant des tests avec des fichiers.jsp qui utilisent des classes accédant à la BD
 
Mais quand je teste avec un fichier main, en l'éxécutant dès qu'il y a un accès à la BD il me sort cette erreur :
 

Code :
  1. javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file:  java.naming.factory.initial
  2. at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:640)
  3. at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
  4. at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:280)
  5. at javax.naming.InitialContext.lookup(InitialContext.java:347)
  6. at classes.Echelle.insertBd(Echelle.java:58)
  7. at editionNiveau.echelleListe.creerEchelle(echelleListe.java:22)
  8. at test.main(test.java:24)


 
 
Voici une partie de mon code avec l'accés au pool :

Code :
  1. public int insertBd() {
  2.  PreparedStatement pInsert;
  3.  PreparedStatement pMax;
  4.  String insert =
  5.   "insert into echelle (id,nividsaisi,nividcoll,nomC,nomL) values (?,?,?,?,?)";
  6.  String max = "select max(id) from echelle";
  7.  int leMax = 1;
  8.  try {
  9.   Context ctx = new InitialContext();
  10.   if (ctx == null)
  11.    throw new Exception("Boom - No Context" );
  12.   DataSource ds =
  13.    (DataSource) ctx.lookup("java:comp/env/jdbc/WebApart" );   if (ds != null) {
  14.    Connection conn = ds.getConnection();
  15.    if (conn != null) {
  16.     pMax = conn.prepareStatement(max);
  17.     pMax.clearParameters();
  18.     ResultSet rst = pMax.executeQuery();
  19.     if (rst.next()) {
  20.      leMax = rst.getInt(1);
  21.     }
  22.     pInsert = conn.prepareStatement(insert);
  23.     pInsert.clearParameters();
  24.     pInsert.setInt(1, leMax + 1);
  25.     pInsert.setInt(2, this.nividsaisi);
  26.     pInsert.setInt(3, this.nividcoll);
  27.     pInsert.setString(4, this.nomC);
  28.     pInsert.setString(5, this.nomL);
  29.     pInsert.executeUpdate();
  30.    }
  31.    conn.close();
  32.   }
  33.  } catch (Exception e) {
  34.   e.printStackTrace();
  35.  }
  36.  return leMax;
  37. }


 
Merci de votre aide


Message édité par Shogun2002 le 20-10-2003 à 11:12:46
Reply

Marsh Posté le 20-10-2003 à 10:54:26   

Reply

Marsh Posté le 20-10-2003 à 10:55:53    

C au niveau du Datasource balise [g] qui me dit l'erreur

Reply

Marsh Posté le 20-10-2003 à 10:57:52    

bin ton application standalone n'a pas accès au JNDI de ton tomcat c'est tout.
 
(DataSource) ctx.lookup("java:comp/env/jdbc/WebApart" );
 
Il faut etre dans la meme JVM que tomcat pour avoir accès au contexte java:comp/env
 

Reply

Marsh Posté le 20-10-2003 à 11:00:10    

Ah ok !
 
et comment on le défini dans son projet Eclipse ?

Reply

Marsh Posté le 20-10-2003 à 11:02:39    

Shogun2002 a écrit :

connexion de pool


[:kiki]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 20-10-2003 à 11:05:22    

:o

Reply

Marsh Posté le 20-10-2003 à 11:06:08    

Tu ferais mieux d'utiliser un pool de connexion (oui oui : à l'envers, ça n'a pas de sens !) d'une librairie indépendante plutôt que d'utiliser celui de Tomcat...

Reply

Marsh Posté le 20-10-2003 à 11:06:38    

Gringo, argumentation souhaitée :o

Reply

Marsh Posté le 20-10-2003 à 11:14:48    

En fait je travaille sur des sources installé sur un autre poste que j'accède par le réseau.
 
Comment faire pour que j'utilise le Tomcat du poste distant et ainsi voir les sorties ...
Sinon utilisé ces sources avec mon propre Tomcat, j'ai essayer pas mal de choses, mais à chaque fois les sorties sont affichés sur le Tomcat du poste distant ...

Reply

Marsh Posté le 20-10-2003 à 11:15:51    

El_gringo a écrit :

oui oui : à l'envers, ça n'a pas de sens !


si mais disons que ca n'a rien à voir ;)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 20-10-2003 à 11:15:51   

Reply

Marsh Posté le 20-10-2003 à 11:19:36    

shogun, ta boite ne peux pas te payer une formation?

Reply

Marsh Posté le 20-10-2003 à 11:25:13    

Je suis un JD j'ai pas d'XP ... c pour ça que je suis là

Reply

Marsh Posté le 20-10-2003 à 11:30:02    

DarkLord a écrit :

Gringo, argumentation souhaitée :o


 
...rester indépendant vis à vis du moteur de servlet ?
 
EDIT:
code spécifique alors qu'il existe des drivers JDBC permettant de manipuler des pools de connexions comme des simples connexions JDBC ?


Message édité par El_gringo le 20-10-2003 à 11:32:14
Reply

Marsh Posté le 20-10-2003 à 11:33:08    

Voilà j'utilise la même JVM, mais ça me fait la même erreur.


Message édité par Shogun2002 le 20-10-2003 à 11:33:16
Reply

Marsh Posté le 20-10-2003 à 11:49:26    

Shogun2002 a écrit :

Voilà j'utilise la même JVM, mais ça me fait la même erreur.


 
ca m'étonnerait. Comment tu sais que tu es dans la meme JVM?

Reply

Marsh Posté le 20-10-2003 à 11:49:39    

El_gringo a écrit :


 
...rester indépendant vis à vis du moteur de servlet ?
 
EDIT:
code spécifique alors qu'il existe des drivers JDBC permettant de manipuler des pools de connexions comme des simples connexions JDBC ?


 
merci :jap:

Reply

Marsh Posté le 20-10-2003 à 12:00:34    


 
J'en conclus que t'es convaincu ?
J'ai aussi envie de rajouter qu'il se ferait surement moins chier en utilisant ce dont je parle...

Reply

Marsh Posté le 20-10-2003 à 12:23:13    

Ok j'essaierai de mettre en place un autre pool de connexion ...
 
J'utilise la même JVM car quand je lance une appli, il execute a partir du tomcat de l'ordi distant, et je viens de configurer mon projet avec la JVM de l'ordi distant "Windows" "Properties" "Java"

Reply

Marsh Posté le 20-10-2003 à 12:48:17    

y'aurait pas déjà eu 200 topics sur le meme sujet par le meme auteur recemment? :heink:


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 20-10-2003 à 13:06:35    

Shogun2002 a écrit :

je viens de configurer mon projet avec la JVM de l'ordi distant "Windows" "Properties" "Java"


que peut bien vouloir dire cette phrase ? [:gratgrat]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 20-10-2003 à 13:08:30    

the real moins moins a écrit :

y'aurait pas déjà eu 200 topics sur le meme sujet par le meme auteur recemment? :heink:

celui où j'ai demandé ce qu'il y avait dans une connection et où je n'ai jamais eu de réponse ?

Reply

Marsh Posté le 20-10-2003 à 13:09:23    

El_gringo a écrit :


 
J'en conclus que t'es convaincu ?
J'ai aussi envie de rajouter qu'il se ferait surement moins chier en utilisant ce dont je parle...


 
je n'avais pas besoin d'être spécialement convaincu. Je voulais juste savoir pourquoi tu lui déconseillais le système de tomcat :)

Reply

Marsh Posté le 20-10-2003 à 13:10:58    

Shogun2002 a écrit :

Ok j'essaierai de mettre en place un autre pool de connexion ...
 
J'utilise la même JVM car quand je lance une appli, il execute a partir du tomcat de l'ordi distant, et je viens de configurer mon projet avec la JVM de l'ordi distant "Windows" "Properties" "Java"


 
:sweat:
 
la meme JVM = la meme instance idiot :o
 
Ca veut dire que ton soft tourne avec l'INSTANCE de la JVM qui fait fonctionner tomcat [:kiki]
 
(ce qui est impossible cela dit si tu passes par un public static void main pour lancer ton test)

Reply

Marsh Posté le 20-10-2003 à 13:17:59    

Code :
  1. import org.apache.catalina.startup.*;
  2. public class Dtc {
  3.    public static void main(String[] args) {
  4.       Bootstrap.main("start" );
  5.    }
  6. }


:o
 
 
[:ddr555]


Message édité par benou le 20-10-2003 à 13:18:52

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 20-10-2003 à 13:23:12    

:jap:
Excellent. C'est quoi ce truc?
 
:jap:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 20-10-2003 à 13:27:00    

DarkLord a écrit :

:jap:
Excellent. C'est quoi ce truc?
 
:jap:


ben c'est juste ce qui est lancé lors du lancement de tomcat : si tu regardes ce que fais le raccourcit qui est créé lors de l'installe de tomcat, c'est ca :  
D:\utils\j2sdk1.4.2_01\bin\java.exe -jar -Duser.dir="d:\utils\Tomcat 4.127" "d:\utils\Tomcat 4.127\bin\bootstrap.jar" start


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 20-10-2003 à 13:28:12    

oui mais une fois que Tomcat est lancé, y a pas moyen de relancer un autre process séparé dans la meme JVM ...
 
C'est ca que je voulais dire [:kiki]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 20-10-2003 à 13:31:11    

DarkLord a écrit :

oui mais une fois que Tomcat est lancé, y a pas moyen de relancer un autre process séparé dans la meme JVM ...
 
C'est ca que je voulais dire [:kiki]


 

Code :
  1. import org.apache.catalina.startup.*;
  2. public class Dtc {
  3.    public static void main(String[] args) throws Exception {
  4.       new Thread() {
  5.          public void run() {
  6.             Bootstrap.main("start" );
  7.          }
  8.       }.start();
  9.       while (! false) {
  10.           System.out.println("arrête de raconter n'importe quoi :o" );
  11.           Thread.sleep(1000);
  12.       }
  13.    }
  14. }


:o


Message édité par benou le 20-10-2003 à 15:03:39

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 20-10-2003 à 13:31:42    

ha nan, ok j'ai capté ce que tu voulais dire ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 20-10-2003 à 13:40:34    

[:kiki]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 20-10-2003 à 13:41:08    

et arrête de faire des while(true) tu risque de donner de mauvaises idées aux autres :o


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 20-10-2003 à 13:43:39    

Merci je viens de comprendre

Reply

Marsh Posté le 20-10-2003 à 13:51:49    

Et comment y remedier ?
 
Soit prendre un autre pool de connexion, soit ...

Reply

Marsh Posté le 20-10-2003 à 15:02:57    

c'est quoi ton problème exacte ???


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 20-10-2003 à 15:03:28    

DarkLord a écrit :

et arrête de faire des while(true) tu risque de donner de mauvaises idées aux autres :o


ce qui faut pas faire pour te faire plaisir :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 20-10-2003 à 15:06:57    

benou a écrit :


ce qui faut pas faire pour te faire plaisir :o


[:rofl]

Reply

Marsh Posté le 20-10-2003 à 15:07:24    

benou a écrit :


ce qui faut pas faire pour te faire plaisir :o


 
[:kiki]


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 20-10-2003 à 17:05:07    

benou a écrit :

c'est quoi ton problème exacte ???


 
Salut
 
bon en gros je laisse tomber ce problème ...
 
Je veux juste une méthode assez simple pour developper sur des codes sources par plusieurs personnes (plusieurs postes), tout en laissant les fichiers sur le poste d'origine, en ayant chacun son propre Tomcat de lancé (pour voir eventuellement les erreurs  et ne pas voir les erreurs de son code source s'affiché sur le poste d'origine qui est de l'autre bout de la piece :) ).
 
 
J'ai vu CVS mais bon, ça résout pas le probleme du Tomcat.
 
Merci  :jap:

Reply

Marsh Posté le 20-10-2003 à 17:09:18    

ex : je tape http://lepcsource:8080/test/test.jsp
 
Ce test.jsp teste des classes que g crée, mais quand il y a une erreur ou simplement un System.out.println que j'ai implémenter, il me l'affiche sur le Tomcat du "lepcsource".
 
Je sais c logique que ça s'affiche là bas, mais il n'y aurais pas un moyen que j'utilise mon propre Tomcat tout en partageant "en live" les sources ?


Message édité par Shogun2002 le 20-10-2003 à 17:09:59
Reply

Marsh Posté le 20-10-2003 à 17:10:11    

mettre la webapp sur un répertoire partagé

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed