[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-4146) "no file extension in servlet path" exception whenever a servlet throws an exception

Kenneth Christensen (JIRA) jira-events at lists.jboss.org
Fri Jun 12 06:11:07 EDT 2009


    [ https://jira.jboss.org/jira/browse/JBSEAM-4146?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12471873#action_12471873 ] 

Kenneth Christensen commented on JBSEAM-4146:
---------------------------------------------

I have the same problem. I'm using url rewriting and the exception is triggered when Seams multipart filter throws an exception because the size of the uploaded file is too big.

components.xml:

...
    <web:multipart-filter create-temp-files="true" max-request-size="1000000" url-pattern="/*"/>
...

Stacktrace ("org.jboss.seam.web.FileUploadException: Multipart request is larger than allowed size" is swallowed by Seam):

12:03:12,438 ERROR [BaseXMLFilter] Exception in the filter chain
javax.servlet.ServletException: java.lang.IllegalArgumentException: no file extension in servlet path: /UpdateDistributor
	at org.jboss.seam.web.ExceptionFilter.endWebRequestAfterException(ExceptionFilter.java:126)
	at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:70)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
	at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:613)
Caused by: java.lang.IllegalArgumentException: no file extension in servlet path: /UpdateDistributor
	at org.jboss.seam.mock.MockViewHandler.getActionURL(MockViewHandler.java:45)
	at org.jboss.seam.jsf.SeamViewHandler.getActionURL(SeamViewHandler.java:74)
	at org.jboss.seam.faces.FacesManager.redirect(FacesManager.java:168)
	at org.jboss.seam.faces.Navigator.redirect(Navigator.java:55)
	at org.jboss.seam.faces.Navigator.redirect(Navigator.java:42)
	at org.jboss.seam.exception.RedirectHandler.handle(RedirectHandler.java:51)
	at org.jboss.seam.exception.Exceptions.handle(Exceptions.java:76)
	at org.jboss.seam.web.ExceptionFilter.endWebRequestAfterException(ExceptionFilter.java:114)
	... 33 more
12:03:12,439 ERROR [[default]] Servlet.service() for servlet default threw exception
java.lang.IllegalArgumentException: no file extension in servlet path: /UpdateDistributor
	at org.jboss.seam.mock.MockViewHandler.getActionURL(MockViewHandler.java:45)
	at org.jboss.seam.jsf.SeamViewHandler.getActionURL(SeamViewHandler.java:74)
	at org.jboss.seam.faces.FacesManager.redirect(FacesManager.java:168)
	at org.jboss.seam.faces.Navigator.redirect(Navigator.java:55)
	at org.jboss.seam.faces.Navigator.redirect(Navigator.java:42)
	at org.jboss.seam.exception.RedirectHandler.handle(RedirectHandler.java:51)
	at org.jboss.seam.exception.Exceptions.handle(Exceptions.java:76)
	at org.jboss.seam.web.ExceptionFilter.endWebRequestAfterException(ExceptionFilter.java:114)
	at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:70)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
	at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:190)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:92)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
	at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:601)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Thread.java:613)


> "no file extension in servlet path" exception whenever a servlet throws an exception
> ------------------------------------------------------------------------------------
>
>                 Key: JBSEAM-4146
>                 URL: https://jira.jboss.org/jira/browse/JBSEAM-4146
>             Project: Seam
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.1.1.GA
>         Environment: Java 6, Tomcat 6
>            Reporter: Matthew Lieder
>         Attachments: SeamTestcase1.zip
>
>
> Pretty easy to reproduce: call a servlet from a Seam webapp that throws an exception, which will result in a Tomcat HTTP 500 error page that ,instead of displaying the servlet's exception, displays a "no file extension in servlet path" exception.
> See the attached testcase.
> I have yet to find a good workaround; only way seems to be to hack Seam's codebase myself. The problem definitely seems to be in org.jboss.seam.mock.MockViewHandler.getActionURL(...), as indicated by JBSEAM-2921.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list