You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by sdeniss <de...@gmail.com> on 2009/05/16 10:47:58 UTC

URL pattern that causes TapestryException

Hi,

if you add ".whatever" to the end of URL that runs tapestry 5.1 (the one I
use) you'll get Exception. 


For example 
http://localhost:8080/pr/reference/new.abracadabra 
will cause


org.apache.tapestry5.ioc.internal.util.TapestryException: 
Component reference/New does not contain an embedded component with id
'abracadabra'. 
Available components: author, copyright, createForm, description, errors,
keyword, label, label_0, 
label_1, label_2, label_3, label_4, label_5, lastRevisionDate, layout,
publisher, submit, title.


If I select existing component then exception depends on the type of the
selected component. For example for
http://lalala.com/pr/reference/new.createForm exception looks like the
following


org.apache.tapestry5.runtime.ComponentEventException: 
Forms require that the request method be POST and that the t:formdata query
parameter have values. [at
classpath:com/pr/web/pages/reference/ReferenceNew.tml, line 3]



The problem is that I as administrator don't want to be disturbed every time
somebody types rubbish in URL. I want to display 404 in this case.

Does anybody know how to solve this?

Thanks,
Deniss

-- 
View this message in context: http://www.nabble.com/URL-pattern-that-causes-TapestryException-tp23571617p23571617.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

Re: URL pattern that causes TapestryException

Posted by Ville Virtanen <vi...@cerion.fi>.
Hi,

I also have the same problem, the app also breaks if you enter some custom
character, like the % sign.

java.lang.IllegalArgumentException
Input string 'totalsadf%' is not valid; the character '%' at position 10 is
not valid.

Hide uninteresting stack frames Stack trace

        *
org.apache.tapestry5.internal.services.URLEncoderImpl.decode(URLEncoderImpl.java:143)
        * $URLEncoder_12151d2041c.decode($URLEncoder_12151d2041c.java)
        *
org.apache.tapestry5.internal.services.ContextPathEncoderImpl.decodePath(ContextPathEncoderImpl.java:86)
        *
$ContextPathEncoder_12151d20413.decodePath($ContextPathEncoder_12151d20413.java)
        *
org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.checkIfPage(ComponentEventLinkEncoderImpl.java:333)
        *
org.apache.tapestry5.internal.services.ComponentEventLinkEncoderImpl.decodePageRenderRequest(ComponentEventLinkEncoderImpl.java:313)
        *
$ComponentEventLinkEncoder_12151d20411.decodePageRenderRequest($ComponentEventLinkEncoder_12151d20411.java)
        *
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:41)
        * $Dispatcher_12151d20412.dispatch($Dispatcher_12151d20412.java)
        * $Dispatcher_12151d20408.dispatch($Dispatcher_12151d20408.java)
        *
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:245)

The earlier proposed fix is to contribute your own exception handler, see 

http://wiki.apache.org/tapestry/Tapestry5ExceptionPage
and 
http://wiki.apache.org/tapestry/Tapestry5RedirectException
for clues. 

Don't know how up-to-date those are.

 - Ville





sdeniss wrote:
> 
> Hi,
> <p>
> if you add ".whatever" to the end of URL that runs tapestry 5.1 (the one I
> use) you'll get Exception. </p>
> <p>
> For example 
> http://localhost:8080/pr/reference/new.abracadabra 
> will cause
> </p>
> <pre>
> org.apache.tapestry5.ioc.internal.util.TapestryException: 
> Component reference/New does not contain an embedded component with id
> 'abracadabra'. 
> Available components: author, copyright, createForm, description, errors,
> keyword, label, label_0, 
> label_1, label_2, label_3, label_4, label_5, lastRevisionDate, layout,
> publisher, submit, title.
> </pre>
> <p>
> If I select existing component then exception depends on the type of the
> selected component. For example for
> http://lalala.com/pr/reference/new.createForm exception looks like the
> following
> </p>
> <pre>
> org.apache.tapestry5.runtime.ComponentEventException: 
> Forms require that the request method be POST and that the t:formdata
> query parameter have values. [at
> classpath:com/pr/web/pages/reference/ReferenceNew.tml, line 3]
> </pre>
> 
> <p>
> The problem is that I as administrator don't want to be disturbed every
> time somebody types rubbish in URL. I want to display 404 in this
> case.</p>
> Does anybody know how to solve this?
> 
> Thanks,
> Deniss
> 
> 

-- 
View this message in context: http://www.nabble.com/URL-pattern-that-causes-TapestryException-tp23571617p23590706.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