UTF-8 e URIs no JBoss AS 6.1

Postado em Atualizado em

Como todos vocês devem saber o contêiner web default do JBoss é o Apache Tomcat. Por padrão o Tomcat não utiliza codificação UTF-8 na URI, isso significa que aplicações rodando sob o JBoss que realizam solicitações GET e contém caracteres UTF-8 codificados (caracteres japoneses por exemplo) não serão decodificadas com precisão pelo servidor.

Para corrigir esse problema edite o arquivo:

jboss-6.1.0.Final\server\<profile>\deploy\jbossweb.sar\server.xml

Adicione o atributo URIEncoding=”UTF-8″ no connector desejado. Veja abaixo um exemplo para os connectors HTTP e AJP:


<Connector port="8080" address="${jboss.bind.address}"
  maxThreads="250" maxHttpHeaderSize="8192"
  emptySessionPath="true" protocol="HTTP/1.1"
  enableLookups="false" redirectPort="8443" acceptCount="100"
  connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>

<Connector port="8009" address="${jboss.bind.address}" protocol="AJP/1.3"
  emptySessionPath="true" enableLookups="false" redirectPort="8443" URIEncoding="UTF-8"/>

Abraços

8 comentários em “UTF-8 e URIs no JBoss AS 6.1

    victor neves disse:
    24 de abril de 2012 às 13:36

    a dica para os desenvolvedores é nunca usar caracteres especiais nas requisições…😉
    apesar deu acreditar que o bom senso dos desenvolvedores não chegaria a tanto é bom dar a dica né? hehehe

    abraços

    Mauricio Magnani respondido:
    24 de abril de 2012 às 16:19

    é verdade Victor e pra dizer a verdade já vi desenv fazendo isso hehehe
    Abraços

    victor neves disse:
    25 de abril de 2012 às 10:23

    Mauricio, me tira uma dúvida… voce sabe se o JBoss não sobre dois arquivos com o nome de “hibernate.properties” ??
    eu tenho dois jars, tenho A.jar e o AB.jar (nomes ficticios rsrs) em ambos eu possuo um arquivo hibernate.properties, os dois arquivos apontam para o MESMO banco porém para databases DIFERENTES! e o log do JBoss mostra que ele está subindo apenas o properties do A.jar, quando uma aplicação X vai usar a api AB.jar ele nao consegue conexao… se eu retirar o A.jar da pasta lib do JBoss dai a api AB.jar sobe normalmente apontando para a outra database… ja viu isso?

    vlw, abraços

      Mauricio Magnani respondido:
      25 de abril de 2012 às 23:18

      E ai Victor deu para entender sim… eu realmente não sei sobre isso..
      mas vou procurar saber e posto aqui… e se souber antes de mim manda ai
      []s

        victor neves disse:
        26 de abril de 2012 às 8:53

        teve um cara no site do GuJ que falou que isso poderia ser problema de concorrência no classloader do JBoss, e que eu teria que isolar o JAR e o WAR em um classloader separado, mas na net a documentação é escassa, tem mais dúvidas do que respostas certas! e quando eu acho é algo referente a isolar o WAR mas nada de isolar o JAR!
        criei um jboss-classloading.xml no diretório META-INF da API mas parece que o JBoss não enxerga esse arquivo!!

        Mauricio Magnani respondido:
        26 de abril de 2012 às 9:59

        hum sinceramente eu não sei… hehehe nunca vi esse problema então não posso afirmar… mas hoje vou procurar saber e no fim do dia acho q tenho um resposta já🙂

    victor neves disse:
    26 de abril de 2012 às 14:46

    colega, fiz funfar…

    eu consegui criar um classloader separado para a aplicação WAR, mas nao conseguia colocar o JAR dentro desse classloader, dai eu eu botei o JAR dentro da pasta lib da aplicação e retirei o JAR da pasta lib do jboss…
    quando o jboss subiu o WAR criando um novo classloader pra aplicação ele subiu junto o JAR… dai funcionou….
    mas estou testando essa solução, se demonstrar estabilidade vai acabar sendo essa a solução para esse caso….

    foi necessário criar um jboss-web.xml com alguns parametros dentro…. ta ai uma sugestão para um tópico, explicar como classloader do jboss funciona… cara… NAO É um assunto fácil de entender…

      Mauricio Magnani respondido:
      26 de abril de 2012 às 16:40

      então era isso mesmo… perguntei para um colega e ele disse que era questão de classloader…
      mas ai fazer funcionar hehe deve ser um trampo meio complicado:/
      []s

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s