Hi, Jair! I experienced a similar trouble and in my case the cause was that there was an INPUT field whose NAME attribute contained non-ascii characters. Then, I removed those characters and the problem was solved. So, try this solution and please let me know about the result.
regards fsaa. Jair da Silva Ferreira Jr wrote: > > Hi, > I changed all my forms to method GET and the problem disappeared. > So, I think there might be a problem with post form data processing in > tomcat 5.5.15. > I can't keep my forms in GET method because some of them submit the > user password. > Any new ideas to solve the problem? > > Thanks, > Jair Jr > > Jair da Silva Ferreira Jr escreveu: > >> Hi, >> Thank you for your reply. >> Yes, I thought about that, but using the "get" method would append >> the form parameters in the URL. As this is a login form, the user >> password would be displayed in the URI. So, I must use the "post" >> method for security reasons. >> Any other ideas? >> >> Thanks, >> Jair Jr >> >> McClure, James escreveu: >> >>>> I have already tried the following: >>>> >>> >>> >>> I agree that this could be caused by encoding issues; as you have >>> already attempted to change in order to rectify the situation. >>> Just an idea... Have you tried changing the method type to "get" and >>> losing the encoding type? The name/value pairs (form data set) for your >>> data in the form submission are assembled differently depending on which >>> method you choose (see HTML 4.0 spec). >>> >>> >>> james >>> -----Original Message----- >>> From: Jair da Silva Ferreira Jr [mailto:[EMAIL PROTECTED] Sent: >>> Thursday, January 19, 2006 10:26 AM >>> To: users@tomcat.apache.org >>> Subject: problem with lost request parameters >>> >>> Hi, >>> I have my web application hosted at brazilian Locaweb. It runs on >>> a Linux as40-32bits server with tomcat 5.5.15 and java 5. My >>> application runs with many (I don't know exactly how many) others in >>> the same tomcat >>> >>> server. My application uses postgresql 8 database, hibernate 2.1.7c, >>> servlet 2.4, jsp 2.0, jstl 1.1 and tiles without struts. >>> >>> My problem is that I can't get the request parameters submitted by >>> some of my users. My form uses the post method to submit its data. >>> When I call request.getParameter("validationScheme") in my servlet I >>> get null. request.getParametersNames() also returns an empty >>> Enumeration. My >>> >>> servlet then throws a ServletException because it can't find a mandatory >>> >>> parameter. I have never experienced this problem in forms that use >>> the "get" method to submit its data. My form has few parameters, they >>> are: validationScheme (hidden), email and password. It is a simple >>> login form. Here is the relevant html code for my form: >>> <form action="<c:url value="v.servlet"/>" method="post" >>> style="margin:0" >>> >>> enctype="application/x-www-form-urlencoded" accept-charset="ISO-8859-1"> >>> <table width="153" border="0" cellspacing="2" cellpadding="0"> >>> <tr align="left"> >>> <td width="30%" class="textologin" >>> align="right"><strong>e-mail</strong></td> >>> <td width="70%"><input name="email" type="text" class="combos" >>> size="17" maxlength="50"></td> >>> </tr> >>> <tr align="left"> >>> <td width="30%" class="textologin" >>> align="right"><strong>senha</strong></td> >>> <td width="70%"><input name="password" type="password" >>> class="combos" size="10"> >>> <input name="validationScheme" type="hidden" value="loginUsual"> >>> <input type="submit" value="ok" class="botaook"></td> >>> </tr> >>> </table> >>> </form> >>> >>> I have already tried the following: >>> - adding <%@ page contentType="text/html; charset=ISO-8859-1" >>> %> declaration in all my jsp pages; >>> - adding <form ... enctype="application/x-www-form-urlencoded" >>> accept-charset="ISO-8859-1"> attributes in all my html forms; >>> - adding <meta http-equiv="Content-Type" content="text/html; >>> charset=ISO-8859-1"> in all my jsp and html pages; >>> - adding a filter that sets the request character encoding to >>> ISO-8859-1 (request.setCharacterEncoding("ISO-8859-1")). This filter >>> is executed for every jsp and servlet in my application; >>> - searched the web for "tomcat lost request parameter" and >>> "tomcat lose request parameter" using google and found nothing that >>> could help me; >>> >>> I asked the support people from Locaweb to execute tcpdump while >>> my user tried to submit the form. tcpdump results showed that the >>> request parameters are getting to tomcat correctly. So, I think that >>> tomcat is losing these parameters for some reason that I don't >>> understand. >>> >>> I also noticed that these errors don't happen to all of my users, >>> but when it happens to a specific user, it can be easily reproduced >>> by that user. Unfortunately, I have never been able to reproduce the >>> error in my machines. >>> >>> Here is some user information logged by my error page when the >>> problem happens: >>> ======= >>> user 1 >>> ======= >>> Thu Jan 19 11:45:05 BRST 2006 >>> Request that failed: /v.servlet >>> Status code: 500 >>> Protocol: HTTP/1.0 >>> Remote Address: 201.9.198.113 >>> Remote Host: 201.9.198.113 >>> Remote Port: 0 >>> Local Address: >>> Local Name: www.dvdfilme.com.br >>> Local Port: 80 >>> Server Name: www.dvdfilme.com.br >>> Server Port: 80 >>> User Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; >>> FunWebProducts) >>> Request Character Encoding: ISO-8859-1 >>> Request Content-type: application/x-www-form-urlencoded >>> Response Character Encoding: ISO-8859-1 >>> Response Content-type: text/html >>> Request Locale: pt_BR >>> Response Locale: pt_BR >>> Throwable: javax.servlet.ServletException: 'validationScheme' request >>> parameter not found >>> .... (exception stack trace) >>> request parameters: {} >>> >>> ======= >>> user 2 >>> ======= >>> Thu Jan 19 12:13:37 BRST 2006 >>> Request that failed: /v.servlet >>> Status code: 500 >>> Protocol: HTTP/1.1 >>> Remote Address: 201.29.118.23 >>> Remote Host: 201.29.118.23 >>> Remote Port: 0 >>> Local Address: >>> Local Name: www.dvdfilme.com.br >>> Local Port: 80 >>> Server Name: www.dvdfilme.com.br >>> Server Port: 80 >>> User Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) >>> Request Character Encoding: ISO-8859-1 >>> Request Content-type: application/x-www-form-urlencoded >>> Response Character Encoding: ISO-8859-1 >>> Response Content-type: text/html >>> Request Locale: pt_BR >>> Response Locale: pt_BR >>> Throwable: javax.servlet.ServletException: 'validationScheme' request >>> parameter not found >>> .... (exception stack trace) >>> request parameters: {} >>> >>> I also looked at tomcat 5.5.15 source code, class >>> org.apache.coyote.tomcat4.CoyoteRequest, method parseRequestParameters() >>> >>> and noticed that expections (Throwable) are "swallowed" in request >>> parameter processing. So, I think that if any problem happens during >>> this process, the code will silently ignore the request parameter. I >>> also think that this is what is happening in my case. Here is the >>> relevant part of the code: >>> >>> /** >>> * Parse request parameters. >>> */ >>> protected void parseRequestParameters() { >>> .... >>> int len = getContentLength(); >>> >>> if (len > 0) { >>> try { >>> byte[] formData = null; >>> if (len < CACHED_POST_LEN) { >>> if (postData == null) >>> postData = new byte[CACHED_POST_LEN]; >>> formData = postData; >>> } else { >>> formData = new byte[len]; >>> } >>> int actualLen = readPostBody(formData, len); >>> if (actualLen == len) { >>> parameters.processParameters(formData, 0, len); >>> } >>> } catch (Throwable t) { >>> ; // Ignore >>> } >>> } >>> } >>> >>> Please, is there anything else I can do to fix this problem? Do >>> you have any ideas to help me? Any help would be really appreciated. >>> Thank you very much for your help. >>> >>> Thanks, >>> Jair Jr >>> >>> --------------------------------------------------------------------- >>> 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] > > > -- View this message in context: http://www.nabble.com/problem-with-lost-request-parameters-tf954370.html#a6535728 Sent from the Tomcat - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]