Problem with servlet
bard123 May 16, 2008 3:52 PMHi,
I'd like to create my own servlet, why, I create a class java in the package of session beans.
Here is the code of my servlet:
public class Download extends HttpServlet{
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException{
FacesContext context = FacesContext.getCurrentInstance();
ExternalContext ec = context.getExternalContext();
String filePath = null;
String fileName = null;
int read = 0;
byte[] bytes = new byte[1000];
response.setContentType("application/pdf");
response.addHeader("Content-disposition", "attachment; filename=\"" + fileName +"\"");
filePath = "C:\\Yannick\\tutoriaux";
fileName = "jpa.pdf";
try
{
ServletOutputStream os = response.getOutputStream();
File file = new File(filePath,fileName);
FileInputStream fis = new FileInputStream(file);
while((read = fis.read(bytes)) != -1)
{
os.write(bytes,0,read);
}
os.flush();
context.responseComplete();
os.close();
System.out.println("\nSuccess\n");
}
catch(Exception e)
{
System.out.println("\nFailure : " + e.toString() + "\n");
}
}
}
Then I add in the web.xml these lines:
<servlet> <servlet-name>Download</servlet-name> <servlet-class>sessionBeans.Download</servlet-class> </servlet> <servlet-mapping> <servlet-name>Download</servlet-name> <url-pattern>/Download</url-pattern> </servlet-mapping>
when I try to access my servlet via the url, here is the error that appears in firefox:
type Rapport d'exception message description Le serveur a rencontré une erreur interne () qui l'a empêché de satisfaire la requête. exception javax.servlet.ServletException: java.lang.IllegalArgumentException: no file extension in servlet path: /Download org.jboss.seam.web.ExceptionFilter.endWebRequestAfterException(ExceptionFilter.java:126) org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:70) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) cause mère java.lang.IllegalArgumentException: no file extension in servlet path: /Download org.jboss.seam.mock.MockViewHandler.getActionURL(MockViewHandler.java:44) org.jboss.seam.jsf.SeamViewHandler.getActionURL(SeamViewHandler.java:74) org.jboss.seam.faces.FacesManager.redirect(FacesManager.java:154) org.jboss.seam.faces.Redirect.execute(Redirect.java:139) org.jboss.seam.exception.DebugPageHandler.handle(DebugPageHandler.java:32) org.jboss.seam.exception.Exceptions.handle(Exceptions.java:75) org.jboss.seam.web.ExceptionFilter.endWebRequestAfterException(ExceptionFilter.java:114) org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:70) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) note La trace complète de la cause mère de cette erreur est disponible dans les fichiers journaux de JBossWeb/2.0.1.GA.
I work with the version of seam 2.0.2.CR1
where is the problem ?
Thank you