looks like you are trying to output your xml too late in the game (wicket
has already written something to the request). what triggers that code? also
our wiki has an example of a wicket rss page

-igor


On 1/22/07, Daniel Nüst <[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
_______________________________________________
Wicket-user mailing list
Wicket-user@lists.sourceforge.net
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

Reply via email to