Hi Geoff,
Here is the stack trace:
org.apache.tapestry.ApplicationRuntimeException
Unable to decode request: the request was rejected because it's size exceeds
allowed range
org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException
the request was rejected because it's size exceeds allowed range
Stack Trace:
*org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:317)
*org.apache.commons.fileupload.DiskFileUpload.parseRequest(DiskFileUpload.java:245)
*org.apache.tapestry.multipart.DefaultMultipartDecoder.decode(DefaultMultipartDecoder.java:159)
*org.apache.tapestry.request.RequestContext.getDecoder(RequestContext.java:1077)
*org.apache.tapestry.request.RequestContext.getParameter(RequestContext.java:440)
*org.apache.tapestry.engine.AbstractEngine.extractServiceName(AbstractEngine.java:2063)
*org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:864)
*org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:198)
*org.apache.tapestry.ApplicationServlet.doPost(ApplicationServlet.java:327)
*javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
*javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
*org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
*org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
*org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
*org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
*org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
*org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
*org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
*org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
*org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
*org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
*org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
*org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)
*org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)
*org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
*java.lang.Thread.run(Thread.java:595)
Page specification:
--------------------------
<application name="XTapestryModule"
engine-class="org.apache.tapestry.engine.BaseEngine" >
<description><![CDATA[ add a description ]]></description>
<page name="Home" specification-path="Home.page"/>
<page name="MainPage" specification-path="Main/Main.page"/>
<extension name="org.apache.tapestry.multipart-decoder"
class="org.apache.tapestry.multipart.DefaultMultipartDecoder">
<configure property-name="maxSize" type="double" value="134217728"/>
</extension>
</application>
HTML:
--------
<form jwcid="@Form" listener="ognl:listeners.submit">
<table border="0" cellspacing="0" cellpadding="0">
<tr>
<th>File </th>
<td><input jwcid="@Upload" file="ognl:file" type=
"file"></input></td>
</tr>
<tr>
<th> </th>
<td>
<input type="submit" jwcid="@Submit"
selected="ognl:submitBtn"
tag="Upload" value="Upload"/>
<input type="button" jwcid="@Submit"
selected="ognl:submitBtn"
tag="Cancel" value="Cancel"/>
</td>
</tr>
</table>
</form>
Template class listener:
--------------------------------
public void submit(IRequestCycle cycle) {
log.info("[Enter] public void submit(IRequestCycle cycle)");
String submit = getSubmitBtn();
if (submit == null) submit = "";
try {
if (submit.equalsIgnoreCase("CANCEL")) {
changePage(cycle, "MainPage");
} else if (submit.equalsIgnoreCase("UPLOAD")) {
if (getFile() != null &&
getFile().getFileName().length() > 0) {
//UPLOAD FILE
}
}
} catch (ApplicationRuntimeException e) {
log.error(e);
changePage(cycle, "MainPage");
} catch (Exception e) {
log.error(e);
changePage(cycle, "MainPage");
}
log.info("[Exit] public void submit(IRequestCycle cycle)");
}
I tried to catch the "ApplicationRuntimeException " in the form listener, but
the exception thrown prior entering the listener. Not even enter the page
begin render as well.
According to the Upload component reference example, I can set max upload file
size by adding the section below in the .application file.
<extension name="org.apache.tapestry.multipart-decoder"
class="org.apache.tapestry.multipart.DefaultMultipartDecoder">
<configure property-name="maxSize" type="double" value="134217728"/>
</extension>
Still I got the same exception when I do an upload of 14MB file.
Please advise. Thank you.
Regards,
K.
On Saturday 20 August 2005 09:37, Geoff Longman wrote:
> Could you post the stack trace?
>
> Geoff
>
> On 8/19/05, Karen Low <[EMAIL PROTECTED]> wrote:
> > Actually I did it in the form listener. However, the exception was thrown
> > before the request hit page begin render. Hence, even i put a catch block
> > in my listener, is of no use.
> >
> > Any idea?
> >
> > K.
> >
> > On Friday 19 August 2005 12:05, Patrick Casey wrote:
> > > What happens when you try to catch it in the submit listener?
> > > Does your catch block not run? Or are you trying to redirect directly
> > > from there?
> > >
> > > If memory serves, if you want to navigate via cycle.activate()
> > > you have to do it in the form listener method, not the submit button's
> > > listener message.
> > >
> > > Altnerately, did you try catching the applicaitonruntimeexception
> > > and re-throwing a PageRedirectException?
> > >
> > > --- Pat
> > >
> > > > -----Original Message-----
> > > > From: Karen [mailto:[EMAIL PROTECTED]
> > > > Sent: Thursday, August 18, 2005 8:48 PM
> > > > To: 'Tapestry users'
> > > > Subject: File upload size problem
> > > >
> > > > Hi,
> > > >
> > > > I'm using Tapestry's Upload component to upload files. It throws
> > > > org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededExcepti
> > > >on when
> > > > the upload file size exceed the allow range. What I need to do is to
> > > > turn that exception to a more meaningful message before display to
> > > > the HTML page.
> > > >
> > > > I tried to catch the ApplicationRuntimeException from the submit
> > > > listener's
> > > > method, but to no avail.
> > > >
> > > > How to catch the ApplicationRuntimeException when this happen? Please
> > > > advise.
> > > >
> > > > Thank you.
> > > >
> > > > Regards,
> > > > Karen
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail:
> > > > [EMAIL PROTECTED]
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]