IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

jdbc pour DB2 depuis Websphere 6.0


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Points : 17
    Points
    17
    Par défaut jdbc pour DB2 depuis Websphere 6.0
    Bonjour,
    j'ai à nouveau un problème avec Websphere 6.0 pour lequel je fais appel à vos connaissances...

    Je développe mon projet web en jsp sur IBM Rational 7. Sur celui-ci, j'ai un serveur Websphere 6.1 en local qui me permet de faire mes tests avant d'exporter mes projets. Sur ce localhost, les connexions jsp vers ma base DB2 se font sans problème, et cela en laissant les paramètres par défaut de websphère mais en ayant par contre choisi dans les propriétés de mon projet le compilateur java jdk 1.4 (puisque je vais ensuite exporter vers un websphère 6.0).
    A noter que là je suis sur mon XP et que j'ai ajouté une connexion ODBC-JDBC vers ma DB dans le panneau de configuration.(je sais pas si ça peut aider...)

    Par contre dès que je mets en ligne sur mon serveur Websphère 6.0, les connexions DB2 ne s'effectue pas.

    Voici mon code de connexion:

    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
     
    try
    {
    	//connexion à la base de donné pour effectué le SELECT
    	Connection $connection = null;
    	Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    	$connection = DriverManager.getConnection("jdbc:odbc:{MaDBName}", "userId", "password");
     
    	//SQL-Query
    	String $query = "SELECT USERID, PASSWORD, NOM, EMAIL FROM MaTable " +
    		"WHERE USERID = '" + EnteredUserID + "' AND PASSWORD = '" + EnteredPassword + "'";
    	Statement $stmt = $connection.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
    	ResultSet $resultat = $stmt.executeQuery($query);
     
    	$resultat.next();
    	UserID = $resultat.getString("USERID");
    	UserName = $resultat.getString("NOM");
    	UserEMail = $resultat.getString("EMAIL");
     
    	if(UserID != null && !UserID.equals(""))
    	{
    		session.setAttribute("userid",UserID);
    		session.setAttribute("username",UserName);
    		session.setAttribute("useremail",UserEMail);
    		Access = true;
    	}		
    }
    catch(Exception e)
    {
    	ErrorReport = e.toString();
    	for (int idx=0;idx<=e.getStackTrace().length -1;idx++)
    	{
    		ErrorReport = ErrorReport + "     " + e.getStackTrace()[idx];
    	}
    	session.invalidate();
    }

    Et voici l'erreur qui m'est retournée :

    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
    java.lang.NullPointerException sun.jdbc.odbc.JdbcOdbcDriver.initialize(JdbcOdbcDriver.java:471) 
    sun.jdbc.odbc.JdbcOdbcDriver.connect(JdbcOdbcDriver.java:188) 
    java.sql.DriverManager.getConnection(DriverManager.java:539) 
    java.sql.DriverManager.getConnection(DriverManager.java:189) 
    com.ibm._jsp.__5F_logon._jspService(__5F_logon.java:89) 
    com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:88) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:856) 
    com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1212)
    com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:629)
    com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:117)
    com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:171)
    com.ibm.ws.jsp.webcontainerext.JSPExtensionProcessor.handleRequest(JSPExtensionProcessor.java:230)
    com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:2841)
    com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:220)
    com.ibm.ws.webcontainer.VirtualHost.handleRequest(VirtualHost.java:204) 
    com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1681) 
    com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:77) 
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:421)
    com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:367)
    com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:94)
    com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java(Compiled Code)) 
    com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java(Compiled Code)) 
    com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:934)
    com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1021)
    com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java(Compiled Code))

    J'espère que vous pourrez m'aider, car ça fait un petit moment que je bloque là-dessus.
    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Il faut aussi définir ta source de données ODBC sur la machine hébergeant le WAS6.

    Cela étant dit, pourquoi utilises-tu un accès direct à la base de données, qui plus est via le pont ODBC-JDBC qui est la pire solution en termes de performances. Websphere offre (comme tous les serveurs J2EE) la possibilité d'utiliser des datasources, et embarque même en natif si je ne me trompe pas, le driver JDBC pour DB2. En plus l'utilisation des datasources te permet de bénéficier des possibilités tels que les pools de connexion, ... et en plus tu peux même utiliser des services qui te permettent de ne pas spécifier les user/password dans ton application, en les configurant au niveau serveur.

    Jacques Desmazières

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Salut,
    merci pour ta réponse.

    La connexion définissant la source de données ODBC sur la machine hébergeant le WAS6 est aussi faite, mais le problème persiste.

    Pour le reste, c'est parce que je ne connaissais pas l'existence de ces datasources, etc. C'est la première fois que je travaille sur Websphère, donc je ne connais pas encore très bien le produit... Donc si tu as des liens qui explique un peu ce que tu voulais dire par là, je suis preneur.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    352
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 352
    Points : 445
    Points
    445
    Par défaut
    Je suis de retour ...

    Pour créer le datasource
    http://publib.boulder.ibm.com/infoce...t_ccrtpds.html

    Pour utiliser le datasource
    http://publib.boulder.ibm.com/infoce...d/tjvdscon.htm

    Pour info, tu peux faire cela aussi bien sur ton serveur de déploiement que dans RAD7. De plus avant de te lancer (c'est peut être précisé dans les liens) il faut créer une référence locale à ton datasource dans le web.xml.

    Jacques Desmazières

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2006
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 26
    Points : 17
    Points
    17
    Par défaut
    Merci Jacques,
    ça m'a en effet l'air assez intéressant et pratique autant du point de vue de la programmation que du système de connexion.

    Le support IBM n'ayant pas non-plus trouvé solution à mon problème, il m'ont aussi conseillé de travailler avec les Datasources. Je vais donc essayer cette façon de travailler pour voir si ça résoudra le tout.

    Merci pour ces liens et peut-être à bientôt.

Discussions similaires

  1. JDBC pour DB2 ?
    Par Chikh001 dans le forum JDBC
    Réponses: 3
    Dernier message: 21/09/2007, 08h56
  2. [Débutant(e)] Message d'erreur JDBC pour oracle
    Par krakatoe dans le forum JDBC
    Réponses: 1
    Dernier message: 14/09/2005, 16h44
  3. [JDBC] pilote JDBC pour MySQL
    Par michihala dans le forum JDBC
    Réponses: 5
    Dernier message: 05/08/2005, 08h33
  4. [JDBC]connection à db2 via websphere
    Par mlequim dans le forum JDBC
    Réponses: 23
    Dernier message: 06/07/2005, 15h22
  5. Pilote JDBC pour SQL Server
    Par david71 dans le forum JDBC
    Réponses: 6
    Dernier message: 21/01/2005, 14h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo