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

Tomcat et TomEE Java Discussion :

[TomCat] pb affichage d'image avec IE


Sujet :

Tomcat et TomEE Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut [TomCat] pb affichage d'image avec IE
    Bonjour,
    je developpe en java/jsp et j'utilise TomCat 4.0.
    J'ai un petit soucis, je veux afficher des images grace à la balise <IMG> en html.
    L'image est générée en lui donnant comme source l'url d'une servlet. C'est servlet est une classe a moi, qui dans la méthode doGet() gère un graphics, et au final fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    g = (Graphics2D) image.getGraphics();
    ...
     
    BufferedImage bufferedImage = new BufferedImage(image.getWidth(delegate),image.getHeight(delegate),BufferedImage.TYPE_INT_BGR);
    bufferedImage.createGraphics().drawImage(image,0,0,delegate);
    ImageIO.write(bufferedImage,"png",res.getOutputStream());
    res.getOutputStream().close();
    donc mon probleme, c'est que quand j'execute cela en localHost, il n'y a pas de probleme.
    mes images s'affichent.
    par contre quand je passe sur le serveur, mes images deviennent de jolies petites croix rouges .
    Je ne comprends par pourquoi ?
    si quelqu'un pouvait m'expliquer et m'aider...
    je tiens a préciser que les opérations faites sur le graphics ne sont pour l'instant pas compliquées, elles consistent en drawString, drawLine...)

    ps, j'ai oublier de preciser que le serveur est sous linux, serveur itanium.
    j'ai trouvé une page qui expliquerai le probleme mais je ne comprends pas ce qu'il faut faire : http://bugs.sun.com/bugdatabase/view...bug_id=4281163

  2. #2
    Membre Expert
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Par défaut
    Bonjour,
    j'ai trouvé une page qui expliquerai le probleme mais je ne comprends pas ce qu'il faut faire :
    Tu ne peux tout simplement pas faire ce type d'opérations si ton serveur n'a pas de serveur X ou équivalent (soft permettant d'éffectuer les opérations graphiques).
    La seule solution est de changer la machine de prod.
    Bonne chance
    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    merci de ta reponse, mais j'avoue qu'elle me fait peur ,
    sinon j'ai trouvé aussi d'autres liens qui parlent de l'option :
    -Djava.awt.headless=true
    j'ai essayé de l'implémenter dans le fichier catalina.sh
    mais le resultat est le meme, toujours mes petites croix rouges. j'utilise JRE... et je comprends pas trop comment résoudre cette erreur
    http://www.developpez.net/forums/sho...d.php?t=221078

  4. #4
    Membre Expert
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Par défaut
    Salut,
    sinon j'ai trouvé aussi d'autres liens qui parlent de l'option :
    -Djava.awt.headless=true
    j'ai essayé de l'implémenter dans le fichier catalina.sh
    C'est vrai, j'avais zappé

    Normalement, ca devrait marcher. Quelques trucs à vérifier :
    - Que ton JDK est >= 1.4 (cette option n'est pas dispo avant à priori)
    - Que tu stoppe complètement le serveur avant de le redémarrer
    - Que c'est bien mis en place (System.getProperty(java.awt.headless) == true)

    Si ca ne marche toujours pas il te reste toujours la possibilité de changer la machine de prod si tu en as les droits, cad essaye d'installer un serveur X ou xfvb, démarre le et relance tomcat.

    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    ok...
    cela ne marche toujours pas, j'ai bien vérifier je travaille avec jdk 1.5...

    En fait je developpe en jsp, mais dans le cas de mon image j'appel une classe héritant HttpServlet, et je me suis dis que ce n'est peut être pas l'image qui ne s'affiche pas mais ma servlet... pourquoi pas. donc pour vérifier j'ai créer une autre classe TestServlet (extends HttpServlet), je l'appel a partir d'une jsp de la maniere suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    RequestDispatcher dispatcher = application.getRequestDispatcher("servlet/ppb.commun.TestServlet");
    dispatcher.forward(request,response);
    je teste sur mon localhost, pas de probleme...
    par contre je teste sur la machine de production (serveur itanium linux), j'ai une superbe erreur : The requested resource (/servlet/ppb.commun.TestServlet) is not available.
    j'ai beaucoup chercher sur le forum et google et j'ai vu qu'il fallait paramétrer le fichier web.xml, c'est ce que j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <servlet>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>ppb.commun.TestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/projet/java</url-pattern>
    </servlet-mapping>
    et j'ai toujours l'erreur... je me dis que si j'arrive a résoudre ce cas de test, peut etre que mon image s'affichera...
    sinon pour info ma classe TestServlet appartient au package ppb.commun, et est dans le dossier projet/java...
    ya t'il encore une erreur ?
    en fait je bloque car tout ce que je lis je l'ai fait et je ne comprends pas l'erreur.
    car deja je ne comprends pas comment ca marche sur mon poste, (en localhost) car je n'ai pas de répertoire servlet, alors quand j'écrit : application.getRequestDispatcher("servlet/ppb.commun.TestServlet);
    ca marche en localHost et pas sur le serveur itanium...
    remarque j'avais aussi essayer de mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     <url-pattern>/servlet</url-pattern>
    -> mais cela n'a pas fonctionné non plus

  6. #6
    Membre Expert
    Avatar de Ioan
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    737
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 737
    Par défaut
    Bonjour,
    j'ai une superbe erreur : The requested resource (/servlet/ppb.commun.TestServlet) is not available.
    C'est juste un petit problème de compréhension du fonctionnement des mappings, rien de grave

    En fait, ce que tu mets dans <url-pattern>, n'a pas à exiter, ce n'est pas un répertoire ou je ne sais quoi. C'est juste un pattern qui indique au moteur de servlets que si quelqu'un rentre ce type d'url, il doit exécuter ta servlet.
    Prenons ton exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <servlet>
        <servlet-name>TestServlet</servlet-name>
        <servlet-class>ppb.commun.TestServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>TestServlet</servlet-name>
        <url-pattern>/projet/java</url-pattern>
    </servlet-mapping>
    Pour que cette configuration marche tu dois avoir une classe TestServlet implémentant Servlet et se trouvant dans le package ppb.commun. Une fois ton application déployée (par exemple à l'adresse http://localhost:8080/MonApplication), si quelqu'un rentre l'url http://localhost:8080/MonApplication/projet/java (ou si tu appelle getRequestDispatcher("/projet/java")) alors TestServlet sera " exécutée ".
    C'est plus clair ?

    Donc, avant d'aller plus loin :
    1 - nettoie ton serveur de dév (il doit y avoir un sacré bazar, si le code actuel fonctionne ).
    2 - redéploie sur ce serveur ton application, teste là
    3 - une fois que c'est bon fait le déploiement sur le serveur de prod

    Sinon, à propos de l'utilisation de Swing côté serveur, ce lien pourra peut-êtr t'aider :
    http://today.java.net/pub/a/today/20...o-the-web.html

    Bonne chance
    @+
    Les FAQs Java, J2EE, JDBC, Struts > Les cours > Le Forum Java.
    Merci de respecter les règles du club.
    Mon blog : quelques news sur Java, Linux et le monde de l'Open Source.

  7. #7
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Tu as bien ajouté -Djava.awt.headless=true dans la variable d'environnement JAVA_OPTS ?

    Et pour t'assurer que la modification de la variable d'environnement a bien été prise en compte, as-tu vérifié si System.getProperty("java.awt.headless") renvoie bien true, comme te l'a indiqué vedaer ?

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    merci pour ton explication vedaer, en effet je n'avais pas compris ce que signifiait url-pattern, maintenant que j'ai compris cela marche mieux et j'affiche mes servlet à partir de serveur linux itanium.
    maintenant pour les graphiques cela ne s'affiche pas, je vais regarder le lien que tu m'a passé et essayer d'intégrer le graph pas à pas.
    sinon c_nvy j'ai vérifier ma variable est bien : java.awt.headless=true

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    re-bonjour tout le monde...
    donc les nouvelles ne sont pas bonnes lol.
    Je ne comprends pas comment résoudre l'erreur :
    j'ai bien java.awt.headless=true, et dans ce cas quand j'ai une exception java : java.awt.HeadlessException.
    et si je ne met pas ma propriété java.awt.headless à true mais à false alors j'ai une autre erreur :
    No X11 Display variable was set, but this program performed an operator which requires it

    je ne sais pas quoi faire pour pouvoir afficher mais petit graphics : en sachant que pour l'instant je me limite à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    graphics2D.drawString("voila le graph",0,0);
    par la suite ja vais devoir y mettre des JFreeChart...
    si quelqu'un pouvait m'aider...
    merci d'avance

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    c_nvy, j'ai une petite question, voila quand j'affiche des graphiques JFreeChart, et qu'ensuite j'arrete TomCat via eclipse (donc je tourne ne localHost) dans ce cas l'application ne se ferme pas totalement et je ne comprends par pourquoi, alors que je n'utilise (n'affiche) pas de composant JFreeChart, l'application est completement terminée.
    je dis ca car dans l'onglet console sous eclipse il y a un carré rouge si l'on est en execution, qui se grise une fois l'application terminée/fermée. et moi mon carré ne se grise pas si il y a affichage des JFreeChart... connaitrait tu la cause de ce soucis ou bien comment le resoudre... merci d'avance...

  11. #11
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Citation Envoyé par lilou77
    connaitrait tu la cause de ce soucis ou bien comment le resoudre... merci d'avance...
    Aucune idée.

    Tu n'as pas de message d'erreur dans la console Eclipse ?

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    504
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 504
    Par défaut
    pas de probleme, apparement j'ai pas de message d'erreur...
    en tout cas maintenant tout marche !!!!!!!!!!
    mes JFreeChart...
    je suis trop contente

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

Discussions similaires

  1. problème d'affichage d'image avec mozilla
    Par lyon31 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 16/03/2006, 16h27
  2. [ImageMagick] Affichage d'image avec la fonction imagejpeg()
    Par yuri dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 16/12/2005, 13h40
  3. Affichage d'image avec API Win32
    Par Chess0 dans le forum Windows
    Réponses: 12
    Dernier message: 14/12/2005, 07h14
  4. PB affichage d'image avec IE
    Par arturo dans le forum Modules
    Réponses: 6
    Dernier message: 25/09/2003, 17h28
  5. [VB6] Affichage d'image avec qlq contraintes
    Par youri dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 21/11/2002, 14h44

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