You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by Robert Koberg <ro...@koberg.com> on 2001/02/01 16:32:19 UTC
xalan-j_2_0_D07 bug
I am trying to recreate an example from O'Rielly's Java and XML book (Ch.13
p.398). When I compile and run the code, I get the following error (code is
below):
Error
=================================================
Error: 500
Location: /tool/servlet/XSLServlet
Internal Servlet Error:
java.lang.IllegalStateException: OutputStream is already being used for this
request
at
org.apache.tomcat.facade.HttpServletResponseFacade.getWriter(HttpServletResp
onseFacade.java:177)
at XSLServlet.service(XSLServlet.java:34)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
at org.apache.tomcat.core.Handler.service(Handler.java:286)
at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79
7)
at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java:210)
at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
at java.lang.Thread.run(Thread.java:484)
--------------------------------
Java code
=================================================
/* XSLServlet */
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URL;
import javax.servlet.*;
import javax.servlet.http.*;
import org.apache.xalan.xslt.XSLTInputSource;
import org.apache.xalan.xslt.XSLTProcessor;
import org.apache.xalan.xslt.XSLTProcessorFactory;
import org.apache.xalan.xslt.XSLTResultTarget;
public class XSLServlet extends HttpServlet {
private static final String hostname = "localhost";
private static final int portNumber = 8080;
private static final String file = "/tool/xml/config.xml";
private static final String stylesheet =
"c:/tomcat/webapps/tool/xml/tool.xsl";
private static final String output =
"c:/tomcat/webapps/tool/xml/boo.htm";
public void service(HttpServletRequest req, HttpServletResponse res)
throws ServletException, IOException {
res.setContentType("text/html");
URL theURL = new URL("http", hostname, portNumber, file);
InputStream in = theURL.openStream();
try {
XSLTProcessor processor = XSLTProcessorFactory.getProcessor();
processor.process(new XSLTInputSource(in), new XSLTInputSource(new
FileInputStream(stylesheet)), new XSLTResultTarget(res.getOutputStream()));
} catch (Exception e) {
PrintWriter out = res.getWriter();
out.println("Error: " + e.getMessage());
out.close();
}
}
}