Avatar billede ulrikp Nybegynder
30. november 2001 - 11:53 Der er 4 kommentarer og
1 løsning

SAX Exception - XML parsing

Jeg har lavet en applikation, som danner output ud fra en xml- og xsl-fil. Det virker fint, når jeg kører denne applikation lokalt på min maskine, men når jeg overfører dette til en servlet, som jeg kører på en webserver med JRUN 3.1, får jeg følgende fejl:
\"SAX Exception SystemId Unknown; Line 0; Column 0;\"
Det er akkurat samme xml- og xsl-fil og jar-filerne er tilføjet classpath\'en på webserveren, så jeg er ret sikker på, at problemet ikke skyldes, at JRUN ikke kan finde klasse-filerne.
Er der nogen, der har en idé om hvad problemet så kan være?

Her er koden:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    PrintWriter out = new PrintWriter (response.getOutputStream());
    response.setContentType(\"text/html\");
   
    URL xmlurl = new URL(\"http://test.mydomain.dk/test/test1.xml\");
    URL xslurl = new URL(\"http://test.mydomain.dk/test/test1.xsl\");
    BufferedReader xmlstream = new BufferedReader(new InputStreamReader(xmlurl.openStream()));
    BufferedReader xslstream = new BufferedReader(new InputStreamReader(xslurl.openStream()));
    InputSource inputxml = new InputSource(xmlstream);
    InputSource inputxsl = new InputSource(xslstream);

    XSLTResultTarget rt = new XSLTResultTarget(\"D:\\\\DATA\\\\LOGS\\\\\");
    XSLProcessor xp = null;
    try {
      xp = new XSLProcessor();
      xp.process(inputxml, inputxsl, rt);
    } catch(SAXException e) { out.print(e.getMessage()); }

    out.flush();
    out.close();
  }
Avatar billede ulrikp Nybegynder
30. november 2001 - 11:55 #1
Hov, jeg glemte lige at fortælle hvilke parsere m.m. jeg bruger, nemlig xalan, lotus xsl processor og xerces:

import javax.servlet.*;
import javax.servlet.http.*;
import java.net.*;
import java.io.*;
import org.w3c.dom.*;
import org.apache.xerces.parsers.DOMParser;
import org.apache.xalan.*;
import org.xml.sax.*;
import com.lotus.xsl.*;
Avatar billede logical Nybegynder
30. november 2001 - 20:25 #2
Uden lige at svare på spørgsmålet, men ligger xml og xsl remote i forhold til din servlet, eller ville du forsøge at lave en XSLT servlet ??

En ting du måske skal huske vedr. JRun er, at den har sine egne jar filer liggende (også med xml), og jeg havde en enkelt gang et problem med disse system-jars.
Avatar billede lbhansen Nybegynder
30. november 2001 - 22:45 #3
Jeg vil give logical ret i at der nok er en inkompabilitet med den xerces der findes i jrun, og den xalan kræver.

Jeg fandt denne lille guide, der godt nok skulle gøre det muligt at bruge SOAP på jrun, men punkt 1 er relevant i dit tilfælde
http://xml.apache.org/soap/docs/install/JRun.html
Avatar billede hgsdc Nybegynder
14. december 2001 - 23:40 #4
SystemId er en attribut, der skal sættes op som en del af at parse en XML fil.
Se SAX API dokumentationen og søg efter setSystemId metoden...Jeg kan ikke lige huske hvilken klasse den er implementeret på, men mener det er XMLReader..
Avatar billede ulrikp Nybegynder
20. januar 2003 - 08:48 #5
Problemet var at der lå nogle .jar-filer på serveren i forvejen. Det var klasser fra dem, servlet'en fik fat i stedet...
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
Kategori
Kurser inden for grundlæggende programmering

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