Pregunta

Ok, he pasado tres siete horas googleando y probando y me dan, tengo que pedir ayuda. He utilizado para desarrollar en Linux y todo fue fácil, ahora yo uso windows y tal cosa fácil como el ajuste correcto de la configuración regional no funciona.

He creado simple JSP con el formulario:

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<form action="save-user" method="post">
    Name: <input type="text" name="name"><br>
    Email: <input type="text" name="email"><br>
    <input type="submit" value="Save">
</form>

Y Servlet:

    String name = request.getParameter("name");
    String email = request.getParameter("email");

Puedo recibir LeoÅ¡ en lugar de Leoš.Yo uso WildFly 8.0RC1, Windows 8 checa, firefox.

Lo he intentado ya:

  1. solicitud.setCharacterEncoding("UTF-8");antes de leer primero parámetro
  2. Filtro con la solicitud.setCharacterEncoding("UTF-8");
  3. JVM propiedad -Dfile.encoding=UTF-8
  4. Quitar estándar JEE pila de frascos de guerra
  5. Revisión de la guerra de embalaje
  6. Dividir el proyecto a la WEB y módulo EJB

Cuando la entidad JPA / DAO se implementa, a continuación, los signos diacríticos se trastoca.Si un comentario fuera de la entidad desde un servlet y quitar entidad JPA de la guerra (en la actualidad quitar OAuthLoginEJB.jar desde la WEB-INF/lib), luego de recibir la codificación correcta.Si puedo añadir este EJB de nuevo a continuación, se produce de nuevo.Es JBoss / WildFly error?

Me pueden proporcionar fuentes: https://drive.google.com/file/d/0B-adlc5KThQDWTdYOEwxOUpTVEU/edit?usp=sharing Está listo para funcionar, no es necesario que escriba checa letras, como son precargada.Gracias

¿Fue útil?

Solución

Marko de WildFly dev lista de correo me señaló a este defecto: https://issues.jboss.org/browse/CDI-411 y esta solución: http://weld.cdi-spec.org/documentation/#3

Cuando he modificado mi web.xml, se comenzó a trabajar:

<filter>
    <filter-name>EncodingFilter</filter-name>
    <filter-class>cz.literak.demo.oauth.servlets.EncodingFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>EncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
        <filter-name>CDI Conversation Filter</filter-name>
        <url-pattern>/*</url-pattern>
</filter-mapping>

Otros consejos

Usted necesita llamar request.setCharacterEncoding("UTF-8") antes de la primera lectura de la solicitud de InputStream.Los parámetros pueden ser leídos por el filtro antes de la codificación del juego en el servlet.Puede ser que hay algún filtro en OAuthLoginEJB.jar o en otra dependencia, que lee los parámetros de la primera?Normalmente, esto es algún parámetro para la depuración...Con Servlet API 3.0, servlets y los filtros pueden ser registrados a través de anotaciones, por lo que algunos de filtro puede ser registrado a pesar de vacío web.xml.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top