Domanda

OK, ho speso Tre Sette ore Google e test e mi arrendo, devo chiedere aiuto. Ero usato per svilupparsi in Linux e tutto era facile, ora uso Windows e una cosa facile come impostare la posizione corretta locale non funziona.

Ho creato semplice JSP con modulo:

<%@ 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>
.

e servlet:

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

ricevo Leoå ¡invece di Leoš. Io uso Willfly 8.0RC1, Windows 8 Ceco, Firefox.

Cosa ho provato già:

    .
  1. richiesta.setchAracterCodiing ("UTF-8"); prima di leggere prima Parametro
  2. filtro con richiesta.setcharacterencoding ("UTF-8");
  3. Proprietà JVM -DFile.encoding= UTF-8
  4. Rimuovi barattoli Standard Jee Stack da guerra
  5. Fix war packaging
  6. Progetto diviso al modulo Web ed EJB
  7. Quando l'entità JPA / DAO è implementato, quindi il diacritico è manglato. Se commendo l'entità dal servlet e rimuovi l'entità JPA dalla guerra (attualmente rimuovi oauthloginejb.jar da web-inf / lib), ricevo una corretta codifica. Se aggiungo questo ejb indietro, allora fallisce. È un bug jboss / wildfly?

    Posso fornire fonti complete: https:// drive. google.com/file/d/0b-adlc5kthqdwtdyoewxouptveu/edit?usp=sharing . È pronto a correre, non hai nemmeno bisogno di digitare lettere ceche, come sono precompilate. Grazie

È stato utile?

Soluzione

Marko da Wildfly Dev Mailing List mi ha indicato questo difetto: https://issues.jboss.Org / Sfoglia / CDI-411 e questo workaround: http://weld.cdi-spec.org/documentation/#3

Quando ho modificato il mio web.xml, ha iniziato a lavorare:

<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>
.

Altri suggerimenti

È necessario chiamare request.setCharacterEncoding("UTF-8") prima di leggere prima la richiesta di richiesta InputStream.I parametri possono essere letti dal filtro prima di impostare la codifica nel servlet.Può essere presente un filtro in OAuthLoginEJB.jar o in un'altra dipendenza, che legge prima i parametri?In genere, questo è un parametro per il debug ... con Servlet API 3.0, servlet e filtri possono essere registrati da annotazioni, quindi alcuni filtro possono essere registrati nonostante il web.xml vuoto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top