[jdom-interest] newbie jdom -> xalan problem

Jason Hunter jhunter at collab.net
Thu Apr 5 08:24:44 PDT 2001


What happens using the new FAQ entry (suggesting JDOMSource/JDOMResult)?

-jh-

Alan Eustace wrote:
> 
> I'd be very grateful if someone can shed any light on this;
> I'm processing xml in a servlet, using piped streams as per the jdom faq
> of about a month ago.
> The parser hangs at the  "xmlOutputter.output( doc, pout );" line. I had
> a similar problem before, which was to do
> with not closing the piped output stream: adding the close() call solved
> that, but I'm baffled by this problem. No exception is being thrown.
> 
> Many thanks,
> Alan Eustace.
> 
> import java.io.*;
> import javax.servlet.*;
> import javax.servlet.http.*;
> import java.util.*;
> import org.jdom.Document;
> import org.jdom.Element;
> import org.jdom.input.*;
> import org.jdom.output.*;
> import org.jdom.input.SAXBuilder;
> import org.jdom.output.XMLOutputter;
> 
> // Xalan-J 2
> import javax.xml.transform.Result;
> import javax.xml.transform.Source;
> import javax.xml.transform.Templates;
> import javax.xml.transform.Transformer;
> import javax.xml.transform.TransformerFactory;
> import javax.xml.transform.stream.StreamSource;
> import javax.xml.transform.stream.StreamResult;
> 
> public class JDOMXalan extends HttpServlet{
> 
>   PrintWriter out;
>   Element msg;
>   Document xmldoc;
>   Transformer processor;
> 
>   public void init(ServletConfig config)throws ServletException{
>               super.init(config);
> 
>             try{
> 
>               File xslt = new File("foo.xsl");
>               SAXBuilder builder = new SAXBuilder();
>               xmldoc = builder.build(new File("foo.xml"));
>               Element root = xmldoc.getRootElement();
>               msg = root.getChild("message");
>               TransformerFactory transformerFactory =
> TransformerFactory.newInstance();
>               Templates stylesheet = transformerFactory.newTemplates(new
> StreamSource( xslt ) );
>               processor = stylesheet.newTransformer();
> 
>             }
>             catch (Exception j){
>                   j.printStackTrace();
>             }
>   }
> 
>   public void doGet(HttpServletRequest req, HttpServletResponse
> res)throws
>   ServletException, IOException{
>         out = res.getWriter();
>         res.setContentType("text/html");
> 
>       try{
> 
>       PipedInputStream in = new PipedInputStream();
>       PipedOutputStream pout  = new PipedOutputStream( in );
>       StreamSource source = new StreamSource( in );
>       StreamResult outsource = new StreamResult (out);
> 
>       XMLOutputter xmlOutputter = new XMLOutputter();
>        //***parser hangs here***
>       xmlOutputter.output( xmldoc, pout  );
> 
>       pout.close();
>       processor.transform( source, outsource );
>       }
>       catch (Exception e) {
>          e.printStackTrace();
>       }
>   }
> }
> 
> _______________________________________________
> To control your jdom-interest membership:
> http://lists.denveronline.net/mailman/options/jdom-interest/youraddr@yourhost.com



More information about the jdom-interest mailing list