31. oktober 2002 - 13:50Der er
16 kommentarer og 1 løsning
AppServer og FileOutputStream
Hey jeg har forgæves forsøgt at åbne en fil til at skrive i via min ApplicationServer. Jeg kan ikke referere absolut til filen der skal skrives i, men se her :
URL url2 = Testclass.class.getResource("/ActiveApps.xml"); InputStream is = url2.openStream(); FileOutputStream fo = new FileOutputStream(url2.getPath(), true);
Første linie laver en URL der referere til filen. I linie 2 laver jeg MED SUCCES en InputStream jeg kan læse filen fra. Men når jeg laver linie 3 for jeg en java.io.FileNotFoundException ??????? Det er udelukkende et problem når skidtet kører gennem en Application Server (JRun) For kører jeg det normalt er der ingen problemer !!!!
Når du kører det i en app. server så er rod path'en (/) typisk roden på den folder hvor din applikationer er deployet. Så hvis filen derimod ligger i rodfolderen på harddisken (f.eks. c:\) så kan det være derfor at den ikke kan finde filen i app.serveren, men at det godt virker fra en simpel public static main() klasse.
disky >> getResource("/WEB-INF/classes/ActiveApps.xml") gir mig en null pointer exception, så den dudder ikke
davsclaus >> uden / så leder den i JRUN's interne JVM eksekverings bibliiotek.
Begge >> Jeg har fundet en løsning, grim, men den duer. I min JSP side kan jeg hive application.getRealPath("/WEB-INF/classes/ActiveApps.xml") ud i en variabel og submitte den til min bean.
disky >> Det er jo i princippet essencen i hele spørgsmålet. Min fil ligger i et normalt web pakke hieraki, som bekendt starter med WEB-INF fra 'web' roden. Derfor er jeg jo interesseret i at finde den absolutte sti til netop WEB-INF punket.
Det du siger i 14:16:30 virker IKKE ! Den kommer til at pege på et JRun specifikt bibliotek. Spørgsmålet er ikke kun Java orienteret men i høj grad også JRun, da JRun har nogle opskure måder at organisere sin java eksekvering ! Og man skal heller IKKE kunne se hvor jeg har gemt filen, da det jo er det jeg gerne vil finde ud af !
Når min kode kører skal jeg kunne hive den absolute sti ud til filen, jeg ved dog at den ligger i biblioteket WEB-INF/classes/ fra webroot. Men hvor webapplicationen er instl. har jeg ingen anelse om. !
:) Ja jeg kæmper en brav kamp mod standarder og overmagt i mit daglige arbejde. SOOOOO sorry hvis jeg ikke formulerde mig klart fra starten, du er jo ellers altid klar med et godt og brugbart svar, så fejlen her må ligge på min side. Jeg skal oppe mig, ska jeg.....Go Week-end
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.