Probleme Oracle

Probleme Oracle - Java - Programmation

Marsh Posté le 27-04-2004 à 10:34:56    

J'ai réalisé un programme qui doit executer des requetes sous Oracle mais j'ai un probleme mon probleme s'execute mais pas correctement. J'ai une erreur au niveau de
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
 
suite à une modification cu classpath

Reply

Marsh Posté le 27-04-2004 à 10:34:56   

Reply

Marsh Posté le 27-04-2004 à 10:40:11    

lapartdombre a écrit :

J'ai une erreur au niveau de
DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
 
suite à une modification cu classpath


 
ha bah ça c'est pas de bol, une erreur qui ne donne aucun message :o


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 27-04-2004 à 10:41:11    

antp a écrit :

ha bah ça c'est pas de bol, une erreur qui ne donne aucun message :o


elle est peut-être timide [:proy]
 
 
 [:neowen]

Reply

Marsh Posté le 27-04-2004 à 10:41:25    

oui mais ca ne m'aide pas à savoir d'ou peut provenir mon erreur; je n'arrive plus à me connecter à Oracle

Reply

Marsh Posté le 27-04-2004 à 10:42:10    

Comment tu veux qu'on t'aide, vu la masse d'info utile que tu as donnée, et surtout vu la quantité de messages d'erreur que tu nous a retranscrits ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 27-04-2004 à 10:44:22    

question idiote: si ça marchait avant que tu ne modifies le classpath, pourquoi tu ne remets pas l'ancien classpath :??:

Reply

Marsh Posté le 27-04-2004 à 10:46:43    

j'ai modifié le classpath via Eclipse et du coup je ne peux pas revenir en arriere et le récupérer

Reply

Marsh Posté le 27-04-2004 à 10:50:14    

Mon programme est censé prendre en parametre un fichier, tester s'il existe et apres faire des traitement dessus. La en ce moment je teste si le programme existe et il me renvoit mon message d'erreur mais meme si je change se message et que je relance la compilation et  l'execution sous eclipse j'ai otujours le meme message

Reply

Marsh Posté le 27-04-2004 à 10:55:28    

Donne pas de code ni rien hein, faudrait pas qu'on ait une chance de t'aider, on sait jamais... :sarcastic:


Message édité par skeye le 27-04-2004 à 10:55:38
Reply

Marsh Posté le 27-04-2004 à 10:56:47    

lapartdombre a écrit :

j'ai modifié le classpath via Eclipse et du coup je ne peux pas revenir en arriere et le récupérer


ben si : tu peux reconfigurer le truc tel qu'il était ...


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

Marsh Posté le 27-04-2004 à 10:56:47   

Reply

Marsh Posté le 27-04-2004 à 10:58:11    

et comment faire sous eclipse pour le reconfigurer

Reply

Marsh Posté le 27-04-2004 à 10:58:52    

bah si tu l'as déjà fait une fois, tu peux le faire une deuxième fois non? :D

Reply

Marsh Posté le 27-04-2004 à 11:02:11    

Voici une partie de mon code

Code :
  1. import java.io.File;
  2. import java.io.FileNotFoundException;
  3. import java.io.FileReader;
  4. import java.io.LineNumberReader;
  5. import java.io.Reader;
  6. import java.sql.Connection;
  7. import java.sql.DriverManager;
  8. import java.sql.ResultSet;
  9. import java.sql.SQLException;
  10. import java.sql.Statement;
  11. import java.util.StringTokenizer;
  12. /**
  13. * @author cleclercq
  14. *
  15. * To change this generated comment edit the template variable "typecomment":
  16. * Window>Preferences>Java>Templates.
  17. * To enable and disable the creation of type comments go to
  18. * Window>Preferences>Java>Code Generation.
  19. */
  20. public class TestTraitement
  21. {
  22. /*********************************************************************************************************************
  23. *
  24. *
  25. *           DECLARATION DES VARIABLES
  26. *
  27. *
  28. ********************************************************************************************************************/
  29. ///// Parametres pour le fichier de plannification des jobs  
  30. final static String MOT_TITRE_JOB= "SCHEDULE";
  31. final static String MOT_NEW_JOB= "JOB";
  32. final static String MOT_HEURE_JOB ="AT";      // mot clé pour l'heure de démarrage du traitement
  33. final static String MOT_CONFIRMED_JOB ="CONFIRMED";   // mot clé de confiramtion de l’achèvement du traitement si elle est demandée
  34. final static String MOT_EVERY_JOB ="EVERY";     // mot clé de l'intervalle de répétition de l’exécution du traitement
  35. final static String MOT_FOLLOWS_JOB= "FOLLOWS";    // mot clé pour les Tâches planifiés ayant dû s’achever correctement pour que le planning puisse se lancer
  36. final static String MOT_OPENS_JOB= "OPENS";     // mot clé pour les fichiers devant être présent pour que le traitement puisse s’exécuter
  37. final static String MOT_PRIO_JOB="PRIORITY";     // mot clé pour la priorité d’exécution du traitement  
  38. final static String MOT_PROMPT_JOB="PROMPT";     // mot clé pour le message devant être validé pour que le traitement puisse s’exécuter
  39. final static String MOT_UNTIL_JOB ="UNTIL";     // mot clé de l'heure maximale à laquelle le traitement peut démarrer
  40. final static String MOT_FIN_JOB ="END";      // mot clé de fin des jobs
  41. final static String MOT_NEEDS ="NEEDS";
  42. final static String MOT_NEEDS_JOB ="NEEDS";
  43. ////  informations  sur le cpu
  44. final static String MOT_MARQUANT_NOM_CPU="cpuname";   // Mot identifiant le nom d'un CPU dans le fichier
  45. final static String MOT_MARQUANT_ADRESSE_TCP="tcpaddr" ;  // Mot identifiant l'adresse IP dans le fichier
  46. final static String MOT_MARQUANT_SYSTEME_EXPLOITATION="os" ; // Mot identifiant le systeme d'exploitation dans le fichier
  47. ///   informations sur les ressources
  48. final static String CHAINE_INTERDITE_RESSOURCE="$RESOURCE";
  49. ////  informations sur les jobs
  50. final static String  CHAINE_MOTS_NOM_FICHIER_SCRIPTNAME="SCRIPTNAME"; // Mots-cle du fichier de script à executer
  51. final static String  CHAINE_MOTS_NOM_FICHIER_COMMANDE="DOCOMMAND"; // Mots-cle de la ligne de commande  
  52. final static String  CHAINE_MOTS_NOM_USER_MAESTRO="STREAMLOGON" ;  // Mots-cle de StreamLogon  
  53. final static String  CHAINE_MOTS_DESCRIPTION="DESCRIPTION";   // Mots-cle de Description  
  54. final static String  CHAINE_MOTS_RECOVERY ="RECOVERY" ;    // Mots-cle de Recovery  
  55. final static String  CHAINE_INTERDITE_JOB ="$JOBS";     // Mots que la ligne ne doit pas contenir pour etre analysee */
  56. /// informations sur les schedules
  57. final static String MOT_TITRE="SCHEDULE";    // mot clé de la ligne de schedule
  58. final static String MOT_CALENDAR="ON";    // mot clé du calendrier d'execution du planning
  59. final static String MOT_EXCEPT="EXCEPT";    // suite du calendrier d'execution
  60. final static String MOT_HEURE="AT";     // mot clé de l'heure d'execution du planning
  61. final static String MOT_CARRYFWD ="CARRYFORWARD";  // mot clé de l'option carry forward
  62. final static String MOT_FOLLOWS="FOLLOWS";   // mot cle des tâches planifiés ayant dû s’achever correctement pour que le planning puisse se lancer
  63. final static String MOT_LIMIT ="LIMIT";    // mot clé du nombre maximal de tâches du planning pouvant être lancées en parallèles
  64. final static String MOT_OPENS="OPENS";    // mot clé des fichiers devant être présent pour que le planning puisse s’exécuter
  65. final static String MOT_PRIO ="PRIORITY";    // mot clé de priorité d'execution de la schedule
  66. final static String MOT_PROMPT ="PROMPT";    // mot clé du Message à afficher en cas d’échec du planning
  67. final static String MOT_UNTIL ="UNTIL";    // mot clé de l'heure maximal à laquelle le planning peut démarrer
  68. final static String CHAR_DEBUT_PLANN_JOB=":" ;  // Caractere de debut de liste des jobs d'un schedule  
  69. final static String CHAINE_FIN_PLANN_JOB ="END" ;  // Caractere de fin de liste des jobs d'un schedule  
  70. final static String CHAINE_CARRYFORWARD ="CF";  // mot clé pour l'option carry forward
  71. final static String CHAINE_CONFIRMED ="CONFIRMED"; // mot clé pour la confirmation de l'achévement du traitement demandée à l'utilisateur
  72.               // avant cloture de l'execution du traitement si demandée par l'utilisateur
  73. /// informations sur la dépendances des jobs
  74. // ATTENDEUR
  75. final static int POS_DEBUT_JOB_CPU_NAME_A=2;
  76. final static int POS_FIN_JOB_CPU_NAME_A = 10;
  77. final static int POS_DEBUT_JOB_NAME_A  =18;
  78. final static int POS_FIN_JOB_NAME_A  = 28;
  79. final static int POS_DEBUT_SCHED_NAME_A =58;
  80. final static int POS_FIN_SCHED_NAME_A  =66;
  81. // ATTENDU
  82. final static int POS_DEBUT_SCHED_CPU_NAME_B =274;
  83. final static int POS_FIN_SCHED_CPU_NAME_B =282;
  84. final static int POS_DEBUT_SCHED_NAME_B =290;
  85. final static int POS_FIN_SCHED_NAME_B = 298;
  86. final static int POS_DEBUT_JOB_CPU_NAME_B =306;
  87. final static int POS_FIN_JOB_CPU_NAME_B =314;
  88. final static int POS_DEBUT_JOB_NAME_B =322;
  89. final static int POS_FIN_JOB_NAME_B =334;
  90. /// informations sur la dépendances des jetons
  91. final static int  POS_DEBUT_RESS_CPU_NAME =2;
  92. final static int  POS_FIN_RESS_CPU_NAME = 10;
  93. final static int  POS_DEBUT_RESS_NAME  = 18;
  94. final static int  POS_FIN_RESS_NAME=26;
  95. final static int  POS_DEBUT_RESS_SCHEDULE_CPU_NAME= 274;
  96. final static int  POS_FIN_RESS_SCHEDULE_CPU_NAME =282;
  97. final static int  POS_DEBUT_RESS_SCHEDULE_NAME =290;
  98. final static int  POS_FIN_RESS_SCHEDULE_NAME  =298;
  99. final static int  POS_DEBUT_RESS_JOB_CPU_NAME =306;
  100. final static int  POS_FIN_RESS_JOB_CPU_NAME =314;
  101. final static int  POS_DEBUT_RESS_JOB_NAME = 322;
  102. final static int  POS_FIN_RESS_JOB_NAME = 330;
  103. final static int  POS_DEBUT_RESS_UNITS = 365;
  104. final static int  POS_FIN_RESS_UNITS = 370;
  105. /*********************************************************************************************************************
  106. *
  107. *
  108. *           DECLARATION DES FONCTIONS
  109. *
  110. *
  111. *********************************************************************************************************************/
  112. /**
  113.  * Method estMotCleSchedule
  114.  *  
  115.  * @param chaine mot  
  116.  * @return boolean
  117.  * retourne vrai si le mot passé en parametre fait parti des mots cles des schedules
  118.  */
  119. public static boolean estMotCleJob(String mot)
  120. {
  121. if ((mot.compareTo(MOT_TITRE_JOB)==0) || (mot.compareTo(MOT_NEW_JOB)==0) ||(mot.compareTo(MOT_HEURE_JOB)==0)
  122.  ||(mot.compareTo(MOT_CONFIRMED_JOB)==0) ||(mot.compareTo(MOT_EVERY_JOB)==0) ||(mot.compareTo(MOT_FOLLOWS_JOB)==0)
  123.  ||(mot.compareTo(MOT_OPENS_JOB)==0) ||(mot.compareTo(MOT_PRIO_JOB)==0) ||(mot.compareTo(MOT_NEEDS_JOB)==0)
  124.  ||(mot.compareTo(MOT_PROMPT_JOB)==0) ||(mot.compareTo(MOT_FIN_JOB)==0) ||(mot.compareTo(MOT_UNTIL_JOB)==0)||(mot.compareTo(MOT_CALENDAR)==0))
  125.  {
  126.  return true;
  127.  }
  128. else
  129.  {
  130.  return false;
  131.  }
  132. }
  133. /**
  134.  * Method ouvrirConnexion
  135.  *  
  136.  * ouvre une connexion à Oracle
  137.  */
  138. static Connection ouvrirConnexion() throws SQLException
  139.  {
  140.  DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  141.  String userName = "system"; 
  142.  String password = "manager";
  143.  // connection à la base de données
  144.  String url = "jdbc:oracle:thin:@stat9007:1521:ADMORA8I";
  145.  Connection conn = DriverManager.getConnection (url,userName,password);
  146.  // mettre en mode de commit manuel
  147.  conn.setAutoCommit(false);
  148.  return(conn);
  149.  }
  150. /**
  151.  * Method enleveGuillemet.
  152.  * @param chaine, début
  153.  */
  154. private static String enleveGuillemet(String chaine, int debut)
  155.  {
  156.  if (chaine.compareTo("" )!=0)
  157.   {
  158.   chaine=chaine.substring(debut,chaine.length()-1);
  159.   }
  160.  return chaine;
  161.  }
  162. /**
  163.  * Method doubleQuote
  164.  * @param chaine
  165.  * traitement de la chaine pour doubler les quotes
  166.  */
  167. private static String doubleQuote(String chaine)
  168.  {
  169.  int index = chaine.indexOf("'" );
  170.  int temp=-1;
  171.  while ((temp!=index) && (index>-1) )
  172.   {
  173.   temp=index;
  174.   chaine=chaine.substring(0, temp)+ "''" + chaine.substring(temp+1,chaine.length());
  175.   index = chaine.indexOf("'",temp+2);
  176.   }
  177.  return chaine;
  178.  }
  179. /***************************************************************************************************************
  180.  * Method genereFichierCpu.
  181.  * @param fileSource
  182.  * @return int
  183.  ***************************************************************************************************************/
  184. static int genereFichierCpu(File fileSource) throws FileNotFoundException, NullPointerException
  185.  {
  186.  int resultat = 1;
  187.  // information sur le CPU
  188.  String cpuName="";    // nom du CPU
  189.  String tcpAdresse="";   // adresse IP
  190.  String operatingSystem="";  // systeme d'exploitation
  191.  if (fileSource.exists())
  192.   {
  193.   //  si le fichier existe
  194.   try
  195.    {
  196.    String lex="";
  197.    // Création du flot de lecture par caractères
  198.    Reader r =new FileReader(fileSource);
  199.    // Création du flot de lecture par ligne
  200.    LineNumberReader source = new LineNumberReader(r);
  201.    while (source.ready())
  202.     {
  203.     // Lecture d'une nouvelle ligne
  204.     String line = source.readLine();
  205.     StringTokenizer st =new StringTokenizer(line,"# " );//2 séparateurs # et espace
  206.     while (st.hasMoreTokens())
  207.      {
  208.      // parcours de la ligne tant qu'elle contient des mots
  209.      lex = st.nextToken();
  210.      if (lex.compareTo(MOT_MARQUANT_NOM_CPU)==0)
  211.       {
  212.       // insertion des données du cpu précédent dans la base de donnée  
  213.       try
  214.        {
  215.        // chargement du pilote de la base de donnees   
  216.        try
  217.         {
  218.         Class.forName("oracle.jdbc.driver.OracleDriver" );
  219.         }
  220.        catch(Exception ex)
  221.         {
  222.         ex.printStackTrace();
  223.         }
  224.        //ouverture d'une connexion
  225.        Connection connection=ouvrirConnexion();
  226.        // requete à executer
  227.        String query;
  228.        // verification que le champs CPU est bien renseigné car il ne peut pas être vide dans le table de la base
  229.        if (cpuName.compareTo("" )!=0)
  230.         {
  231.         query="insert into BASEQ.TEST_SERVEUR (BASEQ.TEST_SERVEUR.SRV_CPU , BASEQ.TEST_SERVEUR.SRV_IP ,  BASEQ.TEST_SERVEUR.SRV_OS) values  ('" + cpuName + "','"+ tcpAdresse +"' , '" + operatingSystem +" ')"; 
  232.         Statement statement = connection.prepareStatement(query);
  233.         // execution de la requete  
  234.                        ResultSet resultset2=statement.executeQuery(query);
  235.                         statement.close();
  236.         }
  237.        // fermeture de la connexion
  238.           connection.close();
  239.      
  240.        }
  241.       catch (Exception e)
  242.        {
  243.        System.out.println(e.getMessage());
  244.        }
  245.       // initialisation des varaibles
  246.       cpuName="";    // nom du CPU
  247.       tcpAdresse="";   // adresse IP
  248.       operatingSystem="";  // systeme d'exploitation
  249.       // nom du cpu (serveur)
  250.       cpuName=st.nextToken();
  251.       }
  252.      else if (lex.compareTo(MOT_MARQUANT_ADRESSE_TCP)==0)
  253.       {
  254.       // adresse tcp
  255.       tcpAdresse=st.nextToken();
  256.       }
  257.      else if (lex.compareTo(MOT_MARQUANT_SYSTEME_EXPLOITATION)==0)
  258.       {
  259.       // systeme d'exploitation
  260.       operatingSystem=st.nextToken();
  261.       }
  262.      }
  263.     }
  264.    // execution de la dernière requete
  265.    try
  266.     {
  267.     // chargement du pilote de la base de donnees   
  268.     try
  269.      {
  270.      Class.forName("oracle.jdbc.driver.OracleDriver" );
  271.      }
  272.     catch(Exception ex)
  273.      {
  274.      ex.printStackTrace();
  275.      }
  276.     //ouverture d'une connexion
  277.     Connection connection=ouvrirConnexion();
  278.     // requete à executer
  279.     String query;
  280.     // verification que le champs CPU est bien renseigné car il ne peut pas être vide dans le table de la base
  281.     if (cpuName.compareTo("" )!=0)
  282.      {
  283.      query="insert into BASEQ.TEST_SERVEUR (BASEQ.TEST_SERVEUR.SRV_CPU , BASEQ.TEST_SERVEUR.SRV_IP ,  BASEQ.TEST_SERVEUR.SRV_OS) values  ('" + cpuName + "','"+ tcpAdresse +"' , '" + operatingSystem +" ')"; 
  284.      Statement statement = connection.prepareStatement(query);
  285.      // execution de la requete  
  286.                   ResultSet resultset2=statement.executeQuery(query);
  287.                    statement.close();
  288.      }
  289.     // fermeture de la connexion
  290.        connection.close();
  291.   
  292.     }
  293.    catch (Exception e)
  294.     {
  295.     System.out.println(e.getMessage());
  296.     }
  297.    resultat = 0;
  298.    }
  299.   catch( java.io.FileNotFoundException f )
  300.    {
  301.    }
  302.   catch( java.io.IOException e )
  303.    {
  304.    }
  305.   return( resultat );
  306.   }
  307.  else
  308.   {
  309.   System.out.println ("Le fichier d'entrée n'existe pas : CPU" );
  310.   return resultat;
  311.   }
  312.  }
  313. public static void main(String[] args)
  314. {
  315. int i= genereFichierCpu(new File("C:\\Documents and Settings\\cleclercq\\Mes documents\\maestro\\cpu" ));
  316. }
  317. }


 
 
J'ai l'impression que eclipse utilise l'ancien fichier .class, car quand j'essaye de dupliquer mon programme sour un autre nom et le recompiler j'ai comme message d'erreur  
 
 
java.lang.NoClassDefFoundError: TestTraitement
Exception in thread "main"

Reply

Marsh Posté le 27-04-2004 à 11:03:01    

Je sais que je peux retourner pour remettre des variables mais je ne me rappelle pas des variables qui étaient la avant

Reply

Marsh Posté le 27-04-2004 à 11:13:35    

lapartdombre a écrit :

Je sais que je peux retourner pour remettre des variables mais je ne me rappelle pas des variables qui étaient la avant


je sais pas ce que tu as foutu dans eclipse pour qu'il n'inclue pas le répertoire de génération des .class au classpath ...
 
Tu pourrais pas plutot recréer un nouveau projet eclipse et, ce coup ci, éviter de toucher à n'importe quoi ?


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

Marsh Posté le 27-04-2004 à 11:21:31    

Meme en créant un nouveau projet je me retrouve toujours avec des erreurs
 
 

Code :
  1. java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
  2. at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
  3. at java.security.AccessController.doPrivileged(Native Method)
  4. at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
  5. at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
  6. at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
  7. at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
  8. at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
  9. at java.lang.Class.forName0(Native Method)
  10. at java.lang.Class.forName(Class.java:140)
  11. at Traitement.genereFichierCpu(Traitement.java:288)
  12. at Traitement.main(Traitement.java:2324)
  13. java.lang.Error: Unresolved compilation problem:
  14. oracle cannot be resolved or is not a type
  15. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
  16. at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
  17. at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
  18. at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
  19. at Traitement.ouvrirConnexion(Traitement.java:178)
  20. at Traitement.genereFichierCpu(Traitement.java:296)
  21. at Traitement.main(Traitement.java:2324)
  22. Exception in thread "main"

Reply

Marsh Posté le 27-04-2004 à 11:45:20    

javac -cp . TestTraitement ?

Reply

Marsh Posté le 27-04-2004 à 11:49:53    

la compilation se fait sous Eclipse car je suis sous Windows donc je ne sais pas comment faire un javac -cp

Reply

Marsh Posté le 27-04-2004 à 12:10:36    

oui et alors ? je fais ça sous windows moi

Reply

Marsh Posté le 27-04-2004 à 12:20:18    

[:ban]
virez moi ce gros tas de code qui pue


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

Marsh Posté le 27-04-2004 à 12:20:41    

VOIR TOPIC CLASSPATH  
AU REVOIR


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

Marsh Posté le 27-04-2004 à 12:26:03    

pourquoi toutes les variables sont en statiques :??:
 
edit: pas que les variables d'ailleurs...


Message édité par uriel le 27-04-2004 à 12:26:31

---------------
IVG en france
Reply

Marsh Posté le 27-04-2004 à 12:27:27    

uriel a écrit :

pourquoi toutes les variables sont en statiques :??:
 
edit: pas que les variables d'ailleurs...

si on disait qu'on s'en foutait?
 
ça doit faire à peu pres le 10e topic de probleme de classpath du gusse là :sweat:


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

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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