Oppure

Loading
28/12/09 11:15
symonx80
Ciao,
sto sviluppando un'applicazione web in jsp con Eclipse 3.2,Tomcat 5.5
Vorrei inserire un'immagine nell'applicazione ma non riesco a dare il percorso relativo alla mia applicazione per poter trovare il file .jpg.
La cartella di Eclipse e' installata in c:\eclipse mentre il progetto in c:\workspace\ProgettoBeta\

Ho creato una cartella per le immagini in c:\workspace\ProgettoBeta\images\ con all'interno un file logo.jpg
il percorso che assegno nel codice e' questo

"./ProgettoBeta/images/Logojpg"

Quando provo a caricare l'applicazione l'errore riscontrato e' il seguente
codice:

C:\eclipse\.\ProgettoBeta\images\Logo.jpg (The system cannot find the path specified)
java.io.FileNotFoundException: C:\eclipse\.\ProgettoBeta\images\Logo.jpg (The system cannot
find the path specified)
   at java.io.FileInputStream.open(Native Method)
   at java.io.FileInputStream.<init>(FileInputStream.java:106)
   at java.io.FileInputStream.<init>(FileInputStream.java:66)
   at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
   at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
   at java.net.URL.openStream(URL.java:1010)
   at com.itextpdf.text.Image.getInstance(Unknown Source)
   at com.itextpdf.text.Image.getInstance(Unknown Source)
   at org.me.betaLib.GeneraPdf.creaPdf(GeneraPdf.java:47)
   at org.me.betaLib.Controller.doGet(Controller.java:62)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
   at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)

   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)

   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
   at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:665)
   at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
   at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
   at java.lang.Thread.run(Thread.java:619)





Da quanto si legge il percorso di origine e' c:\eclipse anziche' la cartella del progetto e questo mi crea errore.
come posso risolvere la situazione?
Grazie a chiunque cerchera' di darmi una mano.
aaa
30/12/09 19:24
netarrow
le tue risorse devono stare nel pacchetto WAR, per accederci poi si usa:

<% String path = getServletContext().getRealPath("path interno al WAR"); %>


a parametro di getRealPath metti quindi il path interno del WAR per raggiungere quella risorsa. Se dentro il pacchetto tu metti la cartella images e vuoi il file logo.jpg:

<% String path = getServletContext().getRealPath("images/logo.jpg"); %>
Ultima modifica effettuata da netarrow 30/12/09 19:28
aaa