I'm using apache and tomcat7 with mod_jk. In tomcat7/conv/server.xml I'm using the following AJP connector
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"
URIEncoding="UTF-8"
/>
In /etc/apache2/conf.d/charset, I have removed the comment from the following line
AddDefaultCharset UTF-8
In my spring application, I even added the following web filter (even though this step was not necessary in my local or dev environments)
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
Despite all of these settings, when I POST form data, the request parameter values have + sign instead of white space by the time it gets to my spring controller. Am I missing some other setting?
I've tried to connect to tomcat directly using port 8080 instead of mod_jk, but I still had the same problem.