You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by Gep <gp...@sopragroup.com> on 2012/07/16 12:13:33 UTC
Streamresponse with Tomcat
Hi everyone!
I've got something strange going on: I've got an event returning a
Streamresponse that works well with Jetty but just don't in tomcat.
In page "Gestion" I call a method called "onDownload" which code is below,
It asks the DAO the object associated with the id(given in the context) and
returns either an XML with the object's data or a zip with every object's
data (if several).
Object onDownload() throws IOException {
String[] id = request.getParameterValues("id");
if (id != null) {
if (id.length == 1) {
return new XMLDownload(historiqueManager.getHistorique(Long
.parseLong(id[0])));
} else {
LinkedList<Historique> h = new LinkedList<Historique>();
for (int i = 0; i < id.length; i++) {
h.add(historiqueManager.getHistorique(Long.parseLong(id[i])));
}
return new Zip(h);
}
}
The XMLDownload class is quite simple, and almost directly taken from the
tutorials, you can find the code below:
public class XMLDownload implements StreamResponse{
private Historique h;
/**
* @param h the history object
*/
public XMLDownload(Historique h) {
super();
this.h = h;
}
@Override
public String getContentType() {
return "Content-type: application/octet-stream";
}
@Override
public InputStream getStream() throws IOException {
return new ByteArrayInputStream(h.getData().getBytes());
}
@Override
public void prepareResponse(Response response) {
response.setHeader("Content-Disposition", "attachment;
filename="+h.getFluxId()+"-"+h.getHistId()+".xml");
}
}
It all runs smoothly with Jetty, but I get the following error with tomcat:
org.apache.tomcat.util.http.parser.TokenMgrError
Lexical error at line 1, column 13. Encountered: ":" (58), after : ""
The path for this call is gestion:download?id=3
With log tools, I know that the XMLDownload object is created, I just don't
get a chance to download it.
Redirections to pages works well though, So I guess the issue comes from the
StreamResponse because a call (with an hyperlink, like before) to
gestion:cancel works well.
If you got any ideas/propositions, I would be in your debt ;)
Gep
--
View this message in context: http://tapestry.1045711.n5.nabble.com/Streamresponse-with-Tomcat-tp5714475.html
Sent from the Tapestry - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: Streamresponse with Tomcat
Posted by Gep <gp...@sopragroup.com>.
That was the issue, it was right under my eye but I couldn't see it.
Thanks mate!
--
View this message in context: http://tapestry.1045711.n5.nabble.com/Streamresponse-with-Tomcat-tp5714475p5714477.html
Sent from the Tapestry - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org
Re: Streamresponse with Tomcat
Posted by trsvax <tr...@gmail.com>.
I believe
return "Content-type: application/octet-stream";
should be
return "application/octet-stream";
--
View this message in context: http://tapestry.1045711.n5.nabble.com/Streamresponse-with-Tomcat-tp5714475p5714476.html
Sent from the Tapestry - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org