Finally got this working by using a FakeIFrame class and simplyfing
code in the servlet:
Servlet:
try {
response.setContentType("application/download" );
response.setHeader( "Content-Disposition", "attachment; filename=
\"" + filename);
ServletOutputStream servletOutputStream =
response.getOutputStream();
servletOutputStream.write(backUpData);
servletOutputStream.flush();
servletOutputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
FakeIFrame :
public class FakeIFrame extends Frame {
public FakeIFrame(String url) {
super();
setSize("0px", "0px");
setVisible(false);
sinkEvents(Event.ONLOAD);
RootPanel.get().add(this);
setUrl(url);
}
public void onBrowserEvent(Event event) {
if (DOM.eventGetType(event) == Event.ONLOAD) {
unsinkEvents(Event.ONLOAD);
DOM.eventCancelBubble(event, true);
RootPanel.get().remove(this);
} else {
super.onBrowserEvent(event);
}
}
}
Invocation:
// Load url i.e. backupServlet in a fake iframe window
new FakeIFrame(GWT.getModuleBaseURL() + "BackUpServlet");
Added to web.xml in tomcat.webapps.ROOT :
<servlet>
<servlet-name>BackUpServlet</servlet-name>
<servlet-class>com.mybusiness.servlets.BackUpServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>BackUpServlet</servlet-name>
<url-pattern>/BackUpServlet</url-pattern>
</servlet-mapping>
> several posts i still can't get myservletto work and it's starting
> to drive me nuts.
>
> Servletis trying todownloada file to the browser and display the
> Open/Save dialog for the file.Servletexecutes correctly with no