Hi Igor! Igor Vaynberg schrieb: > looks like you are trying to output your xml too late in the game > (wicket has already written something to the request). I would rather guess it seems the other way around (and I will try to explain the situation a bit better):
* If I use res.write( xmlout.outputString( doc ) );, I do not get the exeption, but the response is not a xml file, but a "xml+html" document: <?xml version="1.0" encoding="UTF-8"?> <newsList xlmns="http:// ... </newsList> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=Cp1252"/> * If I use xmlout.output(doc, res.getOutputStream() );, I have an exception (whole trace): java.lang.IllegalStateException: getOutputStream() has already been called for this response at org.apache.catalina.connector.Response.getWriter(Response.java:599) at org.apache.catalina.connector.ResponseFacade.getWriter(ResponseFacade.java:195) at wicket.protocol.http.WebResponse.write(WebResponse.java:315) at wicket.protocol.http.BufferedWebResponse.close(BufferedWebResponse.java:75) at wicket.protocol.http.WicketServlet.doGet(WicketServlet.java:229) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) at java.lang.Thread.run(Unknown Source) To me it looks as if I wrote my xml file and wicket wants to write the html code just behind it (just as it does when i use Response.write() ), but it cannot because I already called getOutputStream(). I create the xml file on runtime and do not have a empty one in the same directory as suggested in the rss examples, but I see not reason that is the problem. > what triggers that code? The constructor: public RequestXML() { WebRequest req = (WebRequest) getRequest(); WebResponse res = (WebResponse) getResponse(); parametersToResponse(req.getParameterMap(), res); } catch (IOException e) { e.printStackTrace(); } } I want to use that page to request data out of a Firefox extension. I appreciate every idea. Regards Daniel > > -igor > > > On 1/22/07, *Daniel Nüst* <[EMAIL PROTECTED] > <mailto:[EMAIL PROTECTED]>> wrote: > > Hi! > > I want to load an XML-file from a wicket page concerning the html page > parameters with javascript. The javascript part (load and parse xml) > works fine and also the generated xml file is okay. > > I just always get an > > java.lang.IllegalStateException: getOutputStream() has already been > called for this response > at > org.apache.catalina.connector.Response.getWriter(Response.java:599) > at > org.apache.catalina.connector.ResponseFacade.getWriter > (ResponseFacade.java:195) > at wicket.protocol.http.WebResponse.write(WebResponse.java:315) > at > > wicket.protocol.http.BufferedWebResponse.close(BufferedWebResponse.java:75) > at wicket.protocol.http.WicketServlet.doGet > (WicketServlet.java:229) > [...] > > > I did some research on this problem and found some workarounds for jsp. > I also tried different combinations of Streams and Writers. Alsways that > exception. > > The code: > > private void parametersToResponse(Map<String, String> params, Response > res) throws IOException { > res.setContentType("text/xml"); > > logger.info("map: " + params); > > // test for illegal keys > if ( containsIllegalKeys(params) || params.isEmpty() ) { > logger.warn(howtoString); > res.write(howtoString); //works! > } else { > > // get news from database > Collection<News> news = getNewsFromDB(params); > > // create xml document from news > Document doc = createXML(news); > > // write xml file to stream > XMLOutputter xmlout = new XMLOutputter(); > // res.write ( xmlout.outputString( doc ) > ); //does not work, res > writes xml to beginning of html page > xmlout.output(doc, res.getOutputStream() ); > //somehow dublicate call > of getOutputStream !!! > } > } > > Another solution would be, not to use XMLOutputter, just > response.write("..."), but I don't get a correct XML file but just my > xml put before the html: > > <?xml version=" 1.0" encoding="UTF-8"?> > <newsList [...] > <html> > <head>[...] > > Anybody an idea how to solve the former or the latter? > > Regards, > Daniel > > ------------------------------------------------------------------------- > > Take Surveys. Earn Cash. Influence the Future of IT > Join SourceForge.net's Techsay panel and you'll get the chance to > share your > opinions on IT & business topics through brief surveys - and earn cash > http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV > > <http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV> > _______________________________________________ > Wicket-user mailing list > Wicket-user@lists.sourceforge.net > <mailto:Wicket-user@lists.sourceforge.net> > https://lists.sourceforge.net/lists/listinfo/wicket-user > <https://lists.sourceforge.net/lists/listinfo/wicket-user> > > ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys - and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Wicket-user mailing list Wicket-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wicket-user