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

JDBC Java Discussion :

.jar et VMWare


Sujet :

JDBC Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Points : 28
    Points
    28
    Par défaut .jar et VMWare
    Bonjour,

    Il y a qq temps, j'ai développé une application java qui insert différents fichiers ds une db Oracle.
    J'en ai fait un jar et elle tourne maintenant sur un Windows 2000 pro FR sp3 sans le moindre problème. (JRE : 1.5.0_06)

    Hier, j'ai tenté de la faire tourner sur un Windows 2000 pro FR sp4 en VMWare (JRE : 1.5.0_08). Et j'obtiens l'erreur suivante :

    java.sql.SQLException: ORA-01849: hour must be between 1 and 12.

    J'ai vérifier les options régionales du poste et la table d'envirronement --> tout est pareil.

    Je suis revenu à une JRE 1.5.0_04, le problème est le même.

    Je me casse les dents depuis hier mais sans résultat.

    QQ un a une idée?

  2. #2
    Membre expérimenté Avatar de BainE
    Inscrit en
    Mai 2004
    Messages
    1 327
    Détails du profil
    Informations forums :
    Inscription : Mai 2004
    Messages : 1 327
    Points : 1 544
    Points
    1 544
    Par défaut
    Salut,

    la base de données n'a pas changé entre temps ? (notement les champs date)
    "vaste programme"

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Points : 28
    Points
    28
    Par défaut
    Non, elle n'a pas changé et si je relance l'applic sur l'ancien pc (Non vmware) ça fonctionne à nouveau mais sur le vmware pas

  4. #4
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    Je développe sous VMWARE aussi, et je doute fortement que le problème viennent de là.
    Pour moi vu l'erreur c'est un problème de locale.
    Utilises-tu la même base Oracle? utilises-tu le même user, le même driver?
    Quel est la locale du PC? la locale de la JVM? la locale de ton user Windows?

  5. #5
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par moritan
    Pour moi vu l'erreur c'est un problème de locale.
    Utilises-tu la même base Oracle? utilises-tu le même user, le même driver?
    Quel est la locale du PC? la locale de la JVM? la locale de ton user Windows?
    +1

    • Il s'agit d'une erreur du SGBD et non pas de Java ni du système
    • Une recherche sur "ORA-01849" nous renvoi directement ici http://ora-01849.ora-code.com/ où il y est expliqué que le format des heures doit être compris en 1 et 12 (et non pas entre 1 et 24).


    a++

  6. #6
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    Citation Envoyé par adiGuba
    Salut,


    +1

    • Il s'agit d'une erreur du SGBD et non pas de Java ni du système
    • Une recherche sur "ORA-01849" nous renvoi directement ici http://ora-01849.ora-code.com/ où il y est expliqué que le format des heures doit être compris en 1 et 12 (et non pas entre 1 et 24).


    a++
    Arrf,je pensais que a locale de la base avais une influence sur le format

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par adiGuba
    Salut,


    +1

    • Il s'agit d'une erreur du SGBD et non pas de Java ni du système
    • Une recherche sur "ORA-01849" nous renvoi directement ici http://ora-01849.ora-code.com/ où il y est expliqué que le format des heures doit être compris en 1 et 12 (et non pas entre 1 et 24).


    a++
    Nous sommes d'accord, c'est bien une erreur oracle.

    Seulement mon problème n'est pas si simple car absolument tout est identique au niveau de la base puisque aucune modif n'a été apportée à celle-ci. Le driver oracle est le même que l'autre puisqu'il est inclu dans mon jar. Les paramètres régionaux du poste sont identiques. La seule différence est le service pack du poste et le fait que le nouveau poste de travail est virtualisé.

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    A quel code JDBC dans le programme correspond cette erreur ?

    a++

  9. #9
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    Tu peut déjà exclure la piste du poste virtualisé c'est pas ça j'en suis sur.
    Par contre le SP4 change peut-être le format de l'heure de système.


    Il faudrait que tu mettes des traces de debug sur l'eure que tu envoies en base pour voir son format. De plus comment récupères-tu cette date (string, objet date)? comment envoies tu cette objet à ta base?

    Là on va manquer d'info pour te renseigner

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par adiGuba
    A quel code JDBC dans le programme correspond cette erreur ?

    a++
    Mon insertion dans Oracle se passe dans cette méthode :

    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
     
    public void insertOrders(){
    		try{
    			   List paramServer = qf.racine.getChildren("Command");
    			   Iterator i = paramServer.iterator();
    			   while(i.hasNext())
    			   {
    			      Element courant = (Element)i.next();
    				  String query= "INSERT INTO " + AppMain.cf.getTable1() + " (id, id_client, date_livraison, produit, quantite, id_pcjt, cp_client) VALUES (id_activite.nextval, ?, TO_DATE(?,'dd/MM/yyyy hh:mi'), ?, ?, ?, ?)";
    				  PreparedStatement statement = conn.prepareStatement(query);
    				  statement.setString(1,(String)courant.getChild("RefClient").getText());
    				  statement.setString(2,(String)courant.getChild("DateHeure").getText());
    				  statement.setString(3,(String)courant.getChild("Produit").getText());
    				  statement.setString(4,(String)courant.getChild("Quantite").getText());
    				  statement.setString(5,String.valueOf(nid));
    				  statement.setString(6,(String)courant.getChild("CodePostal").getText());
    				  statement.executeUpdate();
    				  statement.close();
    				  ack = true;
    			   }
    		}catch(SQLException ex){
    			System.err.println("Error in insertOrders : ");
    			ex.printStackTrace();
    			ack = false;
    		}
    	}
    Tout ceci fonctionne sur le premier poste.
    Je précise également que la db Oracle est sur un serveur Linux indépendant.

  11. #11
    Membre expert
    Avatar de moritan
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juin 2005
    Messages
    687
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Juin 2005
    Messages : 687
    Points : 3 135
    Points
    3 135
    Par défaut
    tu résoudrais ton pb en virant le to_date de ta requète et en faisant un statement.setDate.

  12. #12
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par moritan
    tu résoudrais ton pb en virant le to_date de ta requète et en faisant un statement.setDate.
    +1


    De plus tu pourrais vérifier ce que te renvoi courant.getChild("DateHeure").getText()...

    a++

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2003
    Messages : 32
    Points : 28
    Points
    28
    Par défaut
    Citation Envoyé par adiGuba
    +1


    De plus tu pourrais vérifier ce que te renvoi courant.getChild("DateHeure").getText()...

    a++

    Ok, je viens de trouver.
    Dans ma query, j'emploie la fonction to_date du sql oracle comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TO_DATE(?,'dd/MM/yyyy hh:mi')
    je viens de la modifier en :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TO_DATE(?,'DD/MM/YYYY HH24:MI')
    et ça fonctionne à merveille.

    J'ai quand même une question qui m'empêche de dormir :

    Pourquoi fonctionnait-elle sur le premier pc et pas sur le 2ème ???

    Sinon c résolu --> Merci adiGuba.

  14. #14
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    La solution du statement.setDate() donné par moritan aurait quand même été plus propre (je pense)...

    Citation Envoyé par Michael#
    J'ai quand même une question qui m'empêche de dormir :

    Pourquoi fonctionnait-elle sur le premier pc et pas sur le 2ème ???
    La réponse a déjà été donné : c'est une problème de locale et de préférences régionales qui peuvent dépendre du système...

    a++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [jar]chargement dynamique.
    Par Teddy-htk dans le forum API standards et tierces
    Réponses: 10
    Dernier message: 27/04/2006, 15h19
  2. [débutant][jar][Manifest.MF]
    Par Stessy dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 06/08/2003, 19h54
  3. Ajouter un jar ou un package à un autre package
    Par zoulai dans le forum JBuilder
    Réponses: 6
    Dernier message: 30/07/2003, 10h34
  4. [jar executable][Service NT]
    Par paca_mike dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 28/04/2003, 13h39
  5. creation d un fichier jar ou .exe en java
    Par sadjia dans le forum JBuilder
    Réponses: 13
    Dernier message: 13/12/2002, 16h01

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