On Tue, Aug 27, 2013 at 6:22 AM, Alexander Hartner <a...@j2anywhere.com>wrote:
> The problem was resolved by including both filters > (org.jboss.weld.servlet.ConversationFilter and > org.apache.catalina.filters.SetCharacterEncodingFilter). > Should this be reported to jboss weld? It could be documented or even code inspected if needed. cheers Niki > > > <?xml version="1.0" encoding="UTF-8"?> > > <web-app xmlns="http://java.sun.com/xml/ns/javaee" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://java.sun.com/xml/ns/javaee > http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" > version="3.0"> > > <filter> > <filter-name>SetCharacterEncoding</filter-name> > > <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class> > <init-param> > <param-name>encoding</param-name> > <param-value>UTF-8</param-value> > </init-param> > <init-param> > <param-name>ignore</param-name> > <param-value>false</param-value> > </init-param> > </filter> > <filter> > <filter-name>Conversation</filter-name> > <filter-class>org.jboss.weld.servlet.ConversationFilter</filter-class> > </filter> <filter-mapping> > <filter-name>SetCharacterEncoding</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > <filter-mapping> > <filter-name>Conversation</filter-name> > <url-pattern>/*</url-pattern> > </filter-mapping> > <listener> > > <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class> > </listener> > <session-config> > <session-timeout> > 30 > </session-timeout> > </session-config> > </web-app> > > > > On 27/08/2013, at 12:14 AM, Konstantin Kolinko <knst.koli...@gmail.com> > wrote: > > > 2013/8/26 Alexander Hartner <a...@j2anywhere.com>: > >> This may be more of an application problem than a tomcat issue, but I am > >> rather stuck with this one and hoping that somebody on this list may be > >> able to shed some light on my issue. > >> > >> I am trying to post UTF-8 encoding text to my JSF2.2 application, > >> however the data received does not seem to be encoded correctly.I > >> narrowed this problem down to the weld listener. To illustrate the issue > >> I modified the test page from the tomcat faq: > >> > >> > >> > >> 1. <%@ page contentType="text/html; charset=UTF-8" > pageEncoding="UTF-8"%> > >> 2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> > >> 3. <html> > >> 4. <head> > >> 5. <title>Character encoding test page</title> > >> 6. </head> > >> 7. <body> > >> 8. <p> > >> 9. Encoding : <%=request.getCharacterEncoding()%> > >> 10. </p> > >> 11. <p>Data posted to this form was: > >> 12. <% > >> 13. request.setCharacterEncoding("UTF-8"); > >> 14. out.print(request.getParameter("mydata")); > >> 15. %> > >> 16. </p> > >> 17. <form method="GET" action="index.jsp"> > >> 18. <input type="text" name="mydata"> > >> 19. <input type="submit" value="SubmitGET" /> > >> 20. </form> > >> 21. <form method="POST" action="index.jsp"> > >> 22. <input type="text" name="mydata"> > >> 23. <input type="submit" value="SubmitPOST" /> > >> 24. </form> > >> 25. .g. ç,g(,ö,s,,?, etc Soße " Test data " > >> 26. </body> > >> 27. </html> > >> > >> > >> > >> So I have a simple web application which only consist of this page, and > >> the weld library in WEB-INF/lib (weld-servlet-2.0.3.Final.jar). > >> > >> So far so good. However as soon as I include the weld listener in my > >> web.xml file > >> > >> > >> > >> 1. <?xml version="1.0" encoding="UTF-8"?> > >> 2. > >> 3. <web-app xmlns="http://java.sun.com/xml/ns/javaee" > >> 4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > >> 5. xsi:schemaLocation="http://java.sun.com/xml/ns/javaee > http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" > >> 6. version="3.0"> > >> 7. <listener> > >> 8. > <listener-class>org.jboss.weld.environment.servlet.Listener</listener-class> > >> 9. </listener> > >> 10. <session-config> > >> 11. <session-timeout> > >> 12. 30 > >> 13. </session-timeout> > >> 14. </session-config> > >> 15. </web-app> > >> > >> > >> > >> The post parameters are corrupted by the listener. > >> > >> > >> > >> I did enable URIEncoding="UTF-8" in the server.xml file, but this did > >> not make any difference. > >> > >> 1. <Connector executor="tomcatThreadPool" > >> 2. port="8080" protocol="HTTP/1.1" > >> 3. connectionTimeout="20000" > >> 4. redirectPort="8443" > >> 5. URIEncoding="UTF-8"/> > >> > >> > >> > >> With the listener enabled data like "Soße" is received as "SoÃY"e", > >> however once the listerner is removed everything works as expected. > >> > > > > 1. I hope you have seen the FAQ. > > http://wiki.apache.org/tomcat/FAQ/CharacterEncoding > > > > and > > > http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#Set_Character_Encoding_Filter > > > > 2. Try to run with a debugger > > http://wiki.apache.org/tomcat/FAQ/Developing#Debugging > > > > with a breakpoint in > org.apache.catalina.connector.Request#parseParameters() > > > > I guess that there is some component that calls one of getParameter() > > methods before your request.setCharacterEncoding("UTF-8") and thus the > > default of ISO-8859-1 is effective. > > > > 3. What exact version of Tomcat 7.0.x are you using? > > > > Best regards, > > Konstantin Kolinko > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > For additional commands, e-mail: users-h...@tomcat.apache.org > > > >