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 : 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
 
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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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