Connexion Oracle JSP [RESOLU]

Connexion Oracle JSP [RESOLU] - Java - Programmation

Marsh Posté le 09-06-2004 à 22:40:02    

G essaye plusieurs codes trouves sur internet mais rien ne marche, sans dout car je suis un gros noob en java.
J'aimerais me connecter via JAVA a oracle situe sur un serveur distant..
 
Quelqu'un aurait il un code a me proposer?
 
G essaye ca mais ca ne marche pas:

Code :
  1. ry
  2. {
  3. DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  4. Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@MACHINENAME:1521:DATABASENAME","USER","PASSWORD" );
  5. // use the connection
  6. todo
  7. ///
  8. conn.commit();
  9. }
  10. catch (SQLException e)
  11. { e.printStackTrace();
  12. System.out.println(e.getMessage());
  13. }
  14. finally
  15. {
  16. conn.close();
  17. }


Message édité par DumbaDonf le 11-06-2004 à 20:48:31
Reply

Marsh Posté le 09-06-2004 à 22:40:02   

Reply

Marsh Posté le 09-06-2004 à 22:53:01    

Dumbadonf a écrit :

ca ne marche pas:


mais encore ...
 
c'est quoi le message d'erreur ?

Reply

Marsh Posté le 09-06-2004 à 23:01:27    

Pardon...
voici l'erreur:

Citation :


type Exception report
 
message  
 
description The server encountered an internal error () that prevented it from fulfilling this request.
 
exception  
 
org.apache.jasper.JasperException: /bddc.jsp(22,2) Unterminated <% tag
 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:39)
 org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:376)
 org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:134)
 org.apache.jasper.compiler.Parser.parseScriptlet(Parser.java:796)
 org.apache.jasper.compiler.Parser.parseElements(Parser.java:1551)
 org.apache.jasper.compiler.Parser.parse(Parser.java:126)
 org.apache.jasper.compiler.ParserController.doParse(ParserController.java:220)
 org.apache.jasper.compiler.ParserController.parse(ParserController.java:101)
 org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:203)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:461)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:442)
 org.apache.jasper.compiler.Compiler.compile(Compiler.java:430)
 org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:274)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
 
 
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.25 logs.
 
 
--------------------------------------------------------------------------------
 
Apache Tomcat/5.0.25

Reply

Marsh Posté le 09-06-2004 à 23:03:10    

C'est ma toute premiere page en jsp alors je n'y connait vraiement rien.
G effectivement mit un '%':

Citation :

 
<html>
  <head>
    <title>JSP 2.0 Expression Language - Basic Arithmetic</title>
  </head>
  <body>
 
<%  
 ... le code ci dessus ...
>  
  </body>
</html>
 


 
Qu'y a t-il de mauvais?

Reply

Marsh Posté le 09-06-2004 à 23:20:40    

houlala ....
 
Déjà si c'est ta remière jsp, pkoi tu commences pas par quelque chose de plus simple ? mmm ?
 
ensuite, relis bien le message d'erreur et essaye de comprendre ...

Reply

Marsh Posté le 10-06-2004 à 06:27:41    

ta balise <% doit être fermée par une balise %>
accessoirement, si ta connection est déclarée dans le try, elle ne sera pas visible dans le finally (pb de scope)

Reply

Marsh Posté le 10-06-2004 à 15:09:47    

Alors qu'est ce qu'il fo faire? car vraiement je debute et ne c pas exactement comment une page JSP doit etre constituee...
QQ'un voudrait bien reprendre le code que g mis plus haut en forme SVP...
Merci d'avance

Reply

Marsh Posté le 10-06-2004 à 15:11:30    

benou a écrit :

houlala ....
 
Déjà si c'est ta remière jsp, pkoi tu commences pas par quelque chose de plus simple ? mmm ?
 
ensuite, relis bien le message d'erreur et essaye de comprendre ...


ben si je commence par ca c que g besoin de me connecter a la base pr faire le reste...

Reply

Marsh Posté le 10-06-2004 à 15:41:17    

Dumbadonf a écrit :

ben si je commence par ca c que g besoin de me connecter a la base pr faire le reste...


 
oui, mais avant de construire une cathédrale, tu apprends à poser une brique ... citation à la con du jour :D
 
:hello:

Reply

Marsh Posté le 10-06-2004 à 15:46:20    

Dumbadonf a écrit :

ben si je commence par ca c que g besoin de me connecter a la base pr faire le reste...


peut être, mais en commençant par des trucs compliqués, tu vas pas y arriver. Ca parait évident non ?
 
Enfin là l'erreur que t'as, c'est une erreur de base (mais vraiment). et tu n'as aucune idée de où vient l'erreur puisque tu n'as pas fait de tests qui fonctionnent.
 
 
Pour faire grand, commençons petit.


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

Marsh Posté le 10-06-2004 à 15:46:20   

Reply

Marsh Posté le 10-06-2004 à 15:46:51    

alien_nan a écrit :

oui, mais avant de construire une cathédrale, tu apprends à poser une brique ... citation à la con du jour :D


jolie, ta citation est encore pire que la mienne [:ddr555]


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

Marsh Posté le 10-06-2004 à 15:47:39    

Avec le code archi simple suivant :

Code :
  1. <html>
  2. <head>
  3.    <title>JSP 2.0 Expression Language - Basic Arithmetic</title>
  4. </head>
  5. <body>
  6. <% 
  7. String monString = "toto";
  8. </body>
  9. </html>


... tu auras la même erreur qu'avec ton accès à Oracle. En JSP un bloc de code Java est ouvert par "<%" et doit OBLIGATOIREMENT être terminé par un "%>" (et non pas par ">" comme c'est le cas chez toi).
Sauf que si tu avais commencé par faire simple (ne pas commencer par faire appel à une base de données), tu aurais cherché dans la structure meme de ta page, au lieu de commencer à regarder le code lié à ta BD.
Donc vraiment, commence par faire des choses simples (= de comprendre comment fonctionne une page JSP)... Dans ton cas c'est apprendre comment construire une page JSP  :)

Reply

Marsh Posté le 10-06-2004 à 16:02:14    

Ok les gars vous avez raison... Je commence par le debut :)
Alors voici mon 1er test:

Citation :


<html>
  <head>
    <title>JSP Test</title>
  </head>
  <body>
 
<%@ page language="java" %>
 
 
<%  
System.out.println("hello toi" );
%>  
  </body>
</html>


C sence me renvoyer la chaine de caractere "Hello toi" et ben non, rien, quedalle...
ms y'a pas d'erreur

Reply

Marsh Posté le 10-06-2004 à 16:06:21    

Dumbadonf a écrit :

Ok les gars vous avez raison... Je commence par le debut :)
Alors voici mon 1er test:

Citation :


<html>
  <head>
    <title>JSP Test</title>
  </head>
  <body>
 
<%@ page language="java" %>
 
 
<%  
System.out.println("hello toi" );
%>  
  </body>
</html>


C sence me renvoyer la chaine de caractere "Hello toi" et ben non, rien, quedalle...
ms y'a pas d'erreur


 
c normal, c out.println, pas system.out.println (sinon ca s'affiche ds la console si tu l'as lancé en mode console)

Reply

Marsh Posté le 10-06-2004 à 16:11:22    

aaahhhh... merci pr le conseil. Je commencais a me poser d question sur le bon fonctionnement de mon serveur.
Ms c bizard g juste prit le System.out.printl ds un tuto...
ils mettent d conneries dedans ou koi?

Reply

Marsh Posté le 10-06-2004 à 16:15:19    

Dumbadonf a écrit :

aaahhhh... merci pr le conseil. Je commencais a me poser d question sur le bon fonctionnement de mon serveur.
Ms c bizard g juste prit le System.out.printl ds un tuto...
ils mettent d conneries dedans ou koi?


ben nan, mais je susi persuadé que si tu relis bien ton tuto tu veras qu'ils disent que le message doit s'afficher dans la console et pas dans la page.
 
Mais le tutorial est une bonne idée, sans vouloir être vexant (pas du tout), je pense que tu en as vraiment besoin. Passe quelques jours à apprendre, tu gagneras énormément de temps !


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

Marsh Posté le 10-06-2004 à 16:29:37    

Oui c ce que je fais... Et je ne suis pas du tout vexe :D
Je suis debutant, tlm est passe par la.
D'ailleur g un petit soucis, ou est le pb ici:

Code :
  1. <html>
  2.   <head>
  3.     <title>JSP Test</title>
  4.   </head>
  5.   <body>
  6. <%!
  7. string username="toto"; %>
  8. <% out.println(username); %> 
  9.   </body>
  10. </html>


erreur:

Citation :


C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd_jsp.java:11: cannot resolve symbol
symbol  : class string  
location: class org.apache.jsp.bdd_jsp
string username="toto";  
^
1 error


Message édité par DumbaDonf le 11-06-2004 à 20:49:34
Reply

Marsh Posté le 10-06-2004 à 16:31:02    

Dumbadonf a écrit :

Oui c ce que je fais... Et je ne suis pas du tout vexe :D
Je suis debutant, tlm est passe par la.
D'ailleur g un petit soucis, ou est le pb ici:

Citation :


<html>
  <head>
    <title>JSP Test</title>
  </head>
  <body>
 
<%!  
string username="toto"; %>
<% out.println(username); %>  
 
  </body>
</html>


erreur:

Citation :


C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd_jsp.java:11: cannot resolve symbol
symbol  : class string  
location: class org.apache.jsp.bdd_jsp
string username="toto";  
^
1 error




 
String avec une majuscule. Ca ne sert a rien les exemples si tu ne lis pas ce qu'il y a autour (tjrs sans vouloir etre vexant...)
 

Reply

Marsh Posté le 10-06-2004 à 17:06:28    

Merci ca marche...
ben en fait c t un exo qu'il disait de faire, donc c moi qui l'ai fait et je ne savais pas que java etait case sensitive...
et je ne suis tjrs pas vexe :)

Reply

Marsh Posté le 10-06-2004 à 18:45:57    

Dumbadonf a écrit :

et je ne savais pas que java etait case sensitive...


houla ...
 
va falloir que tu fasses aussi un tutorial java alors :/


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

Marsh Posté le 10-06-2004 à 19:49:06    

Ben je t dit que je debutais :D

Reply

Marsh Posté le 11-06-2004 à 20:14:29    

Ca y est........ G enfin reussit.
Voici le code pour ceux qui en ont besoin:

Code :
  1. <%@ page import="java.sql.*"%>
  2. <html>
  3. <head>
  4. <title>Connexion BDD Oracle 9i</title>
  5. </head>
  6. <body>
  7. <%
  8. try{
  9. Class.forName("oracle.jdbc.driver.OracleDriver" );
  10. String url = "jdbc:oracle:thin:@NomMachine:1521:NomBase";
  11. Connection con = DriverManager.getConnection(url,"Login","Pass" );
  12. Statement s = con.createStatement();
  13. String q = "select * from test";
  14. ResultSet r = s.executeQuery(q);
  15. while(r.next())
  16. { %>
  17. <%= r.getString("col1" ) %>
  18. <br>
  19. <%= r.getString("col2" ) %>
  20. <br>
  21. <%
  22. }
  23. }
  24. catch (SQLException e) {
  25. e.printStackTrace();
  26. }
  27. %>
  28. </body>
  29. </html>


Message édité par DumbaDonf le 11-06-2004 à 20:15:14
Reply

Marsh Posté le 11-06-2004 à 20:49:54    

Je viens d'ameliorer le code avec la gestion des erreurs, enfin en tout cas l'affichage des erreurs :D

Code :
  1. <%@ page language="java" contentType="text/html" import="java.sql.*"%>
  2. <%
  3. Connection conn;
  4. ResultSet resultSet;
  5. try {
  6.     // Chargement des Drivers JDBC d'Oracle
  7.     Class.forName("oracle.jdbc.driver.OracleDriver" );
  8. }
  9. catch(ClassNotFoundException e) {
  10.     System.out.println("impossible de trouver les Drivers." );
  11.     System.out.println(e.toString());
  12.     throw new UnavailableException(this, "Classe non trouvee." );
  13. }
  14. try {
  15.     // Connexion a la base
  16.     conn = DriverManager.getConnection("jdbc:oracle:thin:@NomMachine:1521:NomBase", "Login", "Pass" );
  17.     Statement statement = conn.createStatement();
  18.     resultSet = statement.executeQuery("SELECT * from test" );
  19. }
  20. catch(SQLException e) {
  21.     System.out.println("Une erreure est apparue." );
  22.     System.out.println(e.toString());
  23.     throw new UnavailableException(this, "Impossible de se connecter a la base." );
  24. }
  25. %>
  26. <html>
  27. <head>
  28. <title>Acces a Oracle9i en JSP</title>
  29. </head>
  30. <body>
  31. <h1>Select * from test</h1>
  32. <hr>
  33. <pre>Parametres de connexion:
  34.   getAutoCommit = <%=conn.getAutoCommit()%>
  35.   getCatalog = <%=conn.getCatalog()%>
  36.   getTransactionIsolation = <%=conn.getTransactionIsolation()%>
  37.   isClosed = <%=conn.isClosed()%>
  38.   isReadOnly = <%=conn.isReadOnly()%>
  39. </pre>
  40. <p>Resultats:</p>
  41. <table border=1 cellpadding=2 cellspacing=0 width=500>
  42. <% int countrows = 0; %>
  43. <% while (resultSet.next()) { %>
  44. <tr height="302">
  45.     <td height="16"><%= resultSet.getString("col1" ) %></td>
  46.     <td height="16"><%= resultSet.getString("col2" ) %></td>
  47.     <% countrows++; %>
  48. </tr>
  49. <% } %>
  50. </table>
  51. <p><%=countrows%> row(s) found.</p>
  52. <hr>
  53. </body>
  54. </html>


En esperant avoir pu en depanne qq uns...


Message édité par DumbaDonf le 11-06-2004 à 20:50:57
Reply

Marsh Posté le 11-06-2004 à 22:49:27    

tu veux pas libérer les ressources à la fin?
si qqun fait plein de F5 sur ta page, tu vas avoir plein de connections ouvertes pour rien
 
idem : si tu peux pas te connecter, l'objet conn n'a pas de valeur affectée
ta page va avoir du mal à s'afficher...

Reply

Marsh Posté le 14-06-2004 à 15:54:20    

Et comment liberer les ressources a la fin?
je comprends tout a fait e que tu veux dire ms ne sais pas pour l'instant comment resoudre ces 2 pb que tu souleves...
je v chercher sur internet, ci d'ici la tu repasse sur ce topic, n'hesite pas a m'aider a ameliorer ce code.
 
D'avance merci

Reply

Marsh Posté le 14-06-2004 à 16:48:48    

Il suffit simplement de fermer la connexion, le statement et la resultset ca ca?

Code :
  1. statement.close();
  2.   resultSet.close();
  3.   conn.close();


C bon ca?
Car ca ne marche pas chez moi:
erreur:

Citation :


C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd_jsp.java:74: cannot resolve symbol
symbol  : variable conn  
location: class org.apache.jsp.bdd_jsp
  conn.close();    
  ^


et il me met ca pour le statement, le resultset et la connexion...


Message édité par DumbaDonf le 14-06-2004 à 17:02:35
Reply

Marsh Posté le 14-06-2004 à 18:44:01    

Code :
  1. // BEGIN enregistrement du driver
  2. ...
  3. // END enregistrement du driver
  4. Connection conn = null;
  5. Statement statement = null;
  6. ResultSet resultSet = null;
  7. try {
  8.     // Connexion a la base
  9.     conn = DriverManager.getConnection("jdbc:oracle:thin:@NomMachine:1521:NomBase", "Login", "Pass" );
  10.    
  11.     statement = conn.createStatement();
  12.     resultSet = statement.executeQuery("SELECT * from test" );
  13. } catch(SQLException e) {
  14.     System.out.println("Une erreur est apparue." );
  15.     System.out.println(e.toString());
  16.     throw new UnavailableException(this, "Impossible de se connecter a la base." );
  17. } finally {
  18.     if (resultSet!=null) {
  19.         try {
  20.             resultSet.close();
  21.         } catch(SQLException) {
  22.             System.out.println("Problème fermeture du rs "+e);
  23.         } finally {
  24.             resultSet=null;
  25.         }
  26.     }
  27.     if (statement!=null) {
  28.         try {
  29.             statement.close();
  30.         } catch(SQLException) {
  31.             System.out.println("Problème fermeture du stmt "+e);
  32.         } finally {
  33.             statement=null;
  34.         }
  35.     }
  36.     if (conn!=null) {
  37.         try {
  38.             conn.close();
  39.         } catch(SQLException) {
  40.             System.out.println("Problème fermeture du conn "+e);
  41.         } finally {
  42.             conn=null;
  43.         }
  44.     }
  45. }


 
t'as un pb de portée pour tes variables, si elles sont déclarées dans le try, tu n'y auras pas accès dans le catch
les libérations de ressources sont séparées dans des try catch individuels : si tu pouvais pas libérer ton resultSet, tu peux au moins libérer ta connection
(je sais, comme je catch les SQLException, je suis pas obligé de passer les variables à null dans le finally)

Reply

Marsh Posté le 14-06-2004 à 20:03:31    

Tout d'abord, merci pour ton aide, ton code qui en plus est personnalise.
Cependant g bcp d'erreurs:

Citation :


org.apache.jasper.JasperException: Unable to compile class for JSP
 
An error occurred at line: 3 in the jsp file: /bdd2.jsp
 
Generated servlet error:
    [javac] Compiling 1 source file
 
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd2_jsp.java:67: <identifier> expected
                } catch(SQLException) {  
                                    ^
 
 
 
An error occurred at line: 3 in the jsp file: /bdd2.jsp
 
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd2_jsp.java:71: ')' expected
              }  
               ^
 
 
 
An error occurred at line: 3 in the jsp file: /bdd2.jsp
 
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd2_jsp.java:76: <identifier> expected
                } catch(SQLException) {  
                                    ^
 
 
 
An error occurred at line: 3 in the jsp file: /bdd2.jsp
 
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd2_jsp.java:80: ')' expected
              }  
               ^
 
 
 
An error occurred at line: 3 in the jsp file: /bdd2.jsp
 
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd2_jsp.java:85: <identifier> expected
                } catch(SQLException) {  
                                    ^
 
 
 
An error occurred at line: 3 in the jsp file: /bdd2.jsp
 
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd2_jsp.java:89: ')' expected
              }  
               ^
 
 
 
An error occurred at line: -1 in the jsp file: null
 
Generated servlet error:
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd2_jsp.java:140: 'catch' without 'try'
    } catch (Throwable t) {
      ^
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd2_jsp.java:152: '}' expected
^
C:\Program Files\Apache Software Foundation\Tomcat 5.0\work\Catalina\localhost\_\org\apache\jsp\bdd2_jsp.java:31: 'try' without 'catch' or 'finally'
    try {
    ^
9 errors


j'ai essayer de debugger sans succes.
J'ai pourtant bien importer mes drivers:

Code :
  1. // BEGIN enregistrement du driver
  2.   Class.forName("oracle.jdbc.driver.OracleDriver" );


Comment cela se fait-il?

Reply

Marsh Posté le 14-06-2004 à 20:17:33    

oups
j'ai loupé mon copier coller ^^
regarde mes catch, j'ai oublié de donner un nom à l'exception ^^

Code :
  1. }catch(SQLException e)

Reply

Marsh Posté le 21-06-2004 à 22:32:14    

J'avais fini par trouver... Merci

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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