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