Avatar billede bongo13 Praktikant
21. marts 2011 - 01:43 Der er 5 kommentarer og
1 løsning

File - Java.io.FileNotFoundException (%20)

Hejsa
Jeg har defineret følgende filename windows sti i en properties fil:
C:\\Dev\\eclipse-workspace\\orgmap\\sas\\data\\Sunddok\\DW\\Somatik\\Organisatorisk mapning\\Applikation\\Data\\xml

Jeg har følgende kode:

*** Kaldet til metoden ***
writeXmlFile(new DOMSource(myDocument), ApplParameters.PATH_XML+java.io.File.separator+"saveorg_"+metaUser.replace('\\','_')+".xml" );

*** metoden ***

public void writeXmlFile(DOMSource domSrc, String filename) {
   
    System.out.println("OrgModelDAO.writeXmlFile() filename: ["+filename+"]");
    try {
        File file = new File(filename);
        StreamResult fresult = new StreamResult(file);
        Transformer xformer = TransformerFactory.newInstance().newTransformer();
        xformer.transform(domSrc, fresult);

    } catch (TransformerException e) {
        System.out.println("OrgModelDAO.writeXmlFile() fejl TransformerException: ["+e.getMessage()+"]");
    }
    }

Metodens System.out.println udskriver:

C:\Dev\eclipse-workspace\orgmap\sas\data\Sunddok\DW\Somatik\Organisatorisk mapning\Applikation\Data\xml\saveorg_unknown.xml

hvilke jo også er det der står i property filen, MEN når jeg så prøver at oprettet et File objekt får jeg følgende fejl:

TransformerException: [java.io.FileNotFoundException: C:\Dev\eclipse-workspace\orgmap\sas\data\Sunddok\DW\Somatik\Organisatorisk%20mapning\Applikation\Data\xml\saveorg_unknown.xml (The system cannot find the path specified)]

Jeg kan godt se at i fejlen står der %20 og kan godt regne ud der er noget med mellumrum der skaber problemet, men jeg kan bare ikke finde en løsning. Nogle der kan hjælpe ?
Avatar billede arne_v Ekspert
21. marts 2011 - 02:07 #1
Ligner en stor grim møgbeskidt bug i den XSLT implementation.

Prøv og erstat:

File file = new File(filename);
StreamResult fresult = new StreamResult(file);

med:

FileOutputStream file = new FileOutputStream(filename);
StreamResult fresult = new StreamResult(file);
Avatar billede bongo13 Praktikant
21. marts 2011 - 09:31 #2
Arne>> Tusinde tak. Jeg var godt nok ved at blive gråhåret over fejlen.

Tillader mig lige at spørge ind til din kommentar:
Du nævner at det er en bug i XSLT. hvor kommer XSLT ind i billedet. Det koden gør er jo at den opretter et file objekt og efterfølgende streamer til filen. Øhh hvor er det lige et schema kommer ind i billedet ?
Avatar billede arne_v Ekspert
21. marts 2011 - 14:14 #3
Transformer er en del af XSLT. Du bruger den bare uden at transformere.
Avatar billede bongo13 Praktikant
21. marts 2011 - 14:37 #4
Aren>> ok takker. Sikke en fæl fejl. Smider du ikke et svar
Avatar billede arne_v Ekspert
21. marts 2011 - 14:54 #5
svar
Avatar billede arne_v Ekspert
21. marts 2011 - 14:56 #6
Se evt. http://www.eksperten.dk/guide/281 for DOM 3.0 maaden at udskrive paa uden at laane fra XSLT.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





CIO
Stort CIO-interview: Lemvigh-Müllers milliard-omsætning er blevet digital