[ImageIO.read] Can't get input stream from URL!
Bonjour
Ma WebApplication est bientôt terminé mais il reste une erreur.
Context:
Mon appli tourne sur un tomcat 6.0 sur mon pc sur le port 8080
Cette appli utilise des images sur un serveur apache (EasyPHP) sur le port 80
Je l'ai testé en réseau local, et cela fonctionne parfaitement.
Mon problème:
Aujourd'hui j'ai mis mon appli en ligne pour pouvoir la tester depuis un pc hors réseau local.
Tout semble bien fonctionné sauf certaines images qui ne s'affiche pas.
J'ai bien vérifier les path, je me suis assuré que l'image est accessible depuis internet.
Finalement je pense avoir trouvé la source de mon problème. Les images qui posent problème sont récupérée par BufferedImage bi = ImageIO.read(url);
J'obtiens l'erreur suivante:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
|
exception
javax.imageio.IIOException: Can't get input stream from URL!
javax.imageio.ImageIO.read(Unknown Source)
servlets.Cortex.doGet(Cortex.java:46)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
cause mère
java.io.FileNotFoundException: http://80.XXX.XXX.XXX/images/cortexHtml.png
sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
java.net.URL.openStream(Unknown Source)
javax.imageio.ImageIO.read(Unknown Source)
servlets.Cortex.doGet(Cortex.java:46)
javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803) |
J'avoue ne pas bien comprendre pourquoi cela fonctionne en local et non en ligne.
Mon code:
Voici l'une des servlet qui appelle une image:
Code:
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 32 33 34 35 36 37 38
|
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
String valCortex = request.getParameter("cort");
//String valCortex = "8";
OutputStream out = response.getOutputStream();
URL url = new URL(""+general.CheminsDAcces.pathImages+"cortexHtml.png");
BufferedImage bi = ImageIO.read(url);
Graphics g = bi.getGraphics();
g.setColor(Color.black);
g.setFont(new Font("Arial",1,32));
//Pour un chiffre
if(Integer.parseInt(valCortex)<10)
{
g.drawString(valCortex, 260, 156);
}
//Pour deux chiffres
else
{
g.drawString(valCortex, 250, 156);
}
try
{
ImageIO.write(bi, "png", out);
response.setContentType("image/png");
System.out.println("CORTEX CA MARCHE");
}
catch (Exception e)
{
System.err.println(e.toString());
System.out.println("ERREUR CORTEX");
}
finally
{
out.close();
}
} |
Et voici mes paths:
Code:
1 2 3 4
|
public static String pathImages = "http://80.XXX.XXX.XXX/images/";
public static String pathApplication = "http://80.XXX.XXX.XXX:8080/ProfilsWeb/";
public static String pathDonnees = "http://80.XXX.XXX.XXX/"; |
Peut être que quelqu'un a eu le même souci que moi?
Merci d'avance
Max