Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Duplicate
-
5.0.5
-
None
-
Win XP sp2, Apache Tomcat Server 5.5.23
Description
I am using Tapestry core 5.0.5.
I integrated Tapestry 5 and hibernate.
I configured my application's web.xml as below -
<context-param>
<param-name>tapestry.app-package</param-name>
<param-value>com.myproject</param-value>
</context-param>
<filter>
<filter-name>tapestryFilter</filter-name>
<filter-class>org.apache.tapestry.TapestryFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>tapestryFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
This works perfect with all Tapestry related pages.
At certain operation in my application when a file is being uploaded from jsp page by using
servlet it generates output with .htm which fires a Tapestry Page not found exception.
When the application generates url - packageName/FileName.htm it throws this exception.
Tapestry should ignore the paths that tapestry can not resolve and let container deal with those paths.
Stack Trace is as below -
An unexpected application exception has occurred.
- java.lang.IllegalArgumentException
Unable to resolve page 'packageName/FileName' to a known page name. Available page names: core/ExceptionReport, core/PropertyDisplayBlocks, core/PropertyEditBlocks, pacakage/page1, pacakage/page1.
Stack trace
o org.apache.tapestry.internal.services.ComponentClassResolverImpl$8.invoke
(ComponentClassResolverImpl.java:393)
o org.apache.tapestry.internal.services.ComponentClassResolverImpl$8.invoke
(ComponentClassResolverImpl.java:388)
o org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
o org.apache.tapestry.internal.services.ComponentClassResolverImpl.canonicalizePageName
(ComponentClassResolverImpl.java:386)
o org.apache.tapestry.internal.services.PagePoolImpl.checkout(PagePoolImpl.java:59)
o org.apache.tapestry.internal.services.RequestPageCacheImpl.get(RequestPageCacheImpl.java:44)
o org.apache.tapestry.internal.services.RequestEncodingInitializerImpl.initializeRequestEncoding
(RequestEncodingInitializerImpl.java:42)
o org.apache.tapestry.internal.services.InternalModule$11.handle(InternalModule.java:539)
o org.apache.tapestry.internal.services.ComponentActionDispatcher.dispatch
(ComponentActionDispatcher.java:116)
o org.apache.tapestry.services.TapestryModule$12.service(TapestryModule.java:1066)
o org.apache.tapestry.internal.services.LocalizationFilter.service(LocalizationFilter.java:43)
o org.apache.tapestry.services.TapestryModule$2.service(TapestryModule.java:657)
o org.apache.tapestry.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:63)
o org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:97)
o org.apache.tapestry.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:88)
o org.apache.tapestry.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:77)
o org.apache.tapestry.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:110)
o org.apache.tapestry.services.TapestryModule$11.service(TapestryModule.java:1044)
o org.apache.tapestry.TapestryFilter.doFilter(TapestryFilter.java:135)
o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
o net.project.security.SessionAccessFilter.doFilter(SessionAccessFilter.java:79)
o org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
o org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
o org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:210)
o org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
o org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
o org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
o org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
o org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
o org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:870)
o org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection
(Http11BaseProtocol.java:665)
o org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
o org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
o org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:685)
o java.lang.Thread.run(Unknown Source)
I tried to change <url-pattern> to - /package/* , this solves my problem of uploading and
all tapestry action requests are successfully handled but all Tapestry pages are displayed
with - [Error] - like text in front of every Tapestry component on that page.
This - [Error] - is actually alt text for error image of Tapestry, displays on validation error.