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

Langage Java Discussion :

Exception malformed \ux.. pas de soluce


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2005
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 54
    Par défaut Exception malformed \ux.. pas de soluce
    Bonjour,

    Je voudrai dans mon application récupérer et ouvrir un fichier .property afin de ne pas devoir par la suite (si changement de serveur, etc...) recompiler mon pgm java.

    Alors le path est bien récupéré:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String RealPath=request.getRealPath("checkIdentity.properties");
    J'ai une réponse du genre =>
    d:\Tomcat5.0\webapps\checkIdentityNew\checkIdentity.properties

    Ensuite par toute logique il n'y a plus qu'a ouvrir ce fichier afin de le lire .... (y a plus qu'à.... hum) .... et bien non ...
    Dans un try je fais cette commande:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Properties ini = new Properties();
    ini.load(new FileInputStream(RealPath));
    mais j'ai une erreur:

    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
     
    java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
    	at java.util.Properties.loadConvert(Unknown Source)
    	at java.util.Properties.load(Unknown Source)
    	at MainIdentity.AddIdentityServlet.doGet(AddIdentityServlet.java:73)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
    	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    	at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
    	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
    	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
    	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
    	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
    	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
    	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
    	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
    	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
    	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
    	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
    	at java.lang.Thread.run(Unknown Source)
    En lisant sur Internet, ils avaient l'air de dire que c'est un problème de "\", mon problème est que j'ai fait qqs tests pas très concluant (avec des replaceAll(StringOld, StringNew)) étant donné qu'ils n'étaient pas concluant ....
    J'ai mis alors le code en "dure" pour voir .... lequel serait bon (et en même temps vérifier qqfois que je remplaçait mal)
    J'ai essayé :
    - d:\Tomcat5.0\webapps\checkIdentityNew\checkIdentity.properties
    - d:\\Tomcat5.0\\webapps\\checkIdentityNew\\checkIdentity.properties
    - d:/Tomcat5.0/webapps/checkIdentityNew/checkIdentity.properties

    Mais rien ne va??!!

    Je suis a court d'idée, je ne sais vraiment pas pourquoi ça ne fonctionne pas, si vous pouviez m'aider

    D'avance merci

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Il est possible que cela vienne du contenu de ton fichier "checkIdentity.properties". Apparement si celui-ci contient un \u cela peut poser problème (si c'est le cas, essaye de doubler le \).
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Expert éminent
    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
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par **jouly**
    Je suis a court d'idée, je ne sais vraiment pas pourquoi ça ne fonctionne pas, si vous pouviez m'aider
    Le problème ne vient pas du nom du chemin mais du contenu de ton fichier *.properties : les \doivent être doubler sinon ils seront interprété (\n pour un retour à la ligne, \u0000 pour de l'unicode, etc.).
    C'est donc de ce coté là qu'il faut regarder


    Une remarque : IL FAUT libérer les ressources :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Properties ini = new Properties();
    InputStream in = new FileInputStream(RealPath);
    try {
        ini.load(in);
    } finally {
       in.close();
    }
    a++

    [edit] grillé

  4. #4
    Membre averti
    Inscrit en
    Février 2005
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 54
    Par défaut
    pour regler le problème tout de suite j'ai retiré toutes adresses de mon fichier *.properties il contient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    user=BDOCACCESS
    pass=PASSWORD
    defaultBdocUserId=871
    Donc aucun caractère d'echappement pourtant j'ai exactement le même message d'erreur j'ai même vidé les cookies (afin d'être certaine qu'il ne reprenne pas l'ancien==> déjà vécu :-))

    PS: si ça peut aider ça fait même planter Tomcat ??

  5. #5
    Membre chevronné Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Par défaut
    1/ Rajoute des logs ( avant et apres ton checkidentity) et notamment un log de ton RealPath
    2/ il me semble que realPath sur request est deprecated ( et que mtn ca se fait sur un requestdispatcher (ou un servletContext)

  6. #6
    Membre averti
    Inscrit en
    Février 2005
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 54
    Par défaut
    bonjour,

    Effectivement quand je compile il me dit

    Note: F:\document\source\java\checkIdentityNew\WEB-INF\classes\MainIdentity\AddIdentityServlet.java uses or overrides a deprecated API.
    Note: Recompile with -deprecation for details.
    Finished AddIdentityServlet.
    Mais je ne sais pas ce que veut dire "deprecation" et comment compiler comme il me dit (j'utilise netbeans .... j'ai essayé de faire via une boite dos java - deprecation nomFichier.java ... mais il me met "commande non connue??

  7. #7
    Expert éminent
    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
    Billets dans le blog
    1

  8. #8
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Par défaut
    Pour rajouter des options de compilation à un projet NetBeans :
    Comment spécifier des options pour la compilation d'un projet ? .
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster ;) (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag :resolu:

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  9. #9
    Membre averti
    Inscrit en
    Février 2005
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 54
    Par défaut
    bonjour, Je reviens à l'attaque ... dsl qqs jours de répis

    Voilà j'utilise une nouvelle méthode afin de ne plus prendre
    request.getRealPath
    qui est "obsolète" j'utilise plus ou moins le même genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
            ServletContext context = config.getServletContext();
            path = context.getRealPath("checkIdentity.properties");
    ...
    Ce code ne me donne plus d'avertissement si je fais un "print" du résultat de path j'obtiens bien l'adresse complète de mon fichier donc normalement le chemin correct ...
    d:\Tomcat5.0\webapps\checkIdentityNew\checkIdentity.properties
    Ensuite j'ai le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ...
    Properties ini = new Properties();
    InputStream in=null;
    try 
            {
                in = new FileInputStream(path);
                ini.load(in);
                cacheConnectionString=ini.getProperty("cacheConnectionString");
                user=ini.getProperty("user");
                pass=ini.getProperty("pass");
                out.println("user="+user+"  pass="+pass);
            } catch ....
    Il me met toujours l'erreur alors que j'ai retiré tout "\" dans le fichier ini il ne me reste plus que user et pass

  10. #10
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Essaie de changer l'encodage de ton fichier de config( le passer en ISO-8859-1 ou quelquechose dans ce stye)

  11. #11
    Membre averti
    Inscrit en
    Février 2005
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 54
    Par défaut
    ça marche!!! merci beaucoup, le fichier en fait était codé en "ANSI" et je lisais en "cp1252".... Enfin .... je vais pouvoir passer à l'étape supérieure Lol ça fait qqs jours quand même que j'étais là dessus j'ai pensé à beaucoup de chose sauf à ça !!

    Encore une fois merci

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

Discussions similaires

  1. Trouver le probleme mais pas la soluce
    Par orphen dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 24/02/2007, 12h19
  2. Mon Exception ne marche pas
    Par Midou dans le forum Accès aux données
    Réponses: 7
    Dernier message: 01/12/2006, 03h46
  3. Réponses: 2
    Dernier message: 19/07/2006, 17h37
  4. [pas de soluce] connaitre la norme usb
    Par arcane dans le forum Composants
    Réponses: 11
    Dernier message: 22/08/2005, 18h00
  5. Trouve pas de soluce :(
    Par vodevil dans le forum Langage
    Réponses: 2
    Dernier message: 06/07/2005, 09h13

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