Response Jetty sem Charset

votos
4

Estou usando Jetty para testar um webservice que temos e estou a tentar obtê-lo para responder sem charset sob o cabeçalho do tipo de conteúdo.

Alguém sabe como fazer isso?

Eu tentei interceptar a resposta e definindo o characterEncoding para nulo ou , mas que dá Exceções.

Eu estou usando Jetty 6.1.6.

Publicado 09/02/2009 em 13:48
fonte usuário
Em outras línguas...                            


3 respostas

votos
0

O charset é uma informação muito útil. Em vez de tentar forçar um bom produto (o molhe) para fazer a coisa errada eu preferiria tentar ensinar o consumidor do serviço para fazer a coisa certa (reconhecer e charset honra).

Respondeu 10/02/2009 em 00:25
fonte usuário

votos
3

Eu acho que isso não é uma questão de qual servlet container que você usa, mas o que você faz com a resposta dentro de seu servlet. Se você definir a sua codificação de caracteres chamando setContentType de ServletResponse (2.3) ou setCharacterEncoding (2.4, 2.5) com o parâmetro nullou ""ele deve funcionar (não tente me). Mas não se esqueça de chamar os métodos citados acima antes de chamar getWriter, caso contrário, definindo a codificação não terá nenhum efeito !

Respondeu 10/02/2009 em 08:52
fonte usuário

votos
1

Eu tentei a minha auto agora, mas devo admitir, meu cais é muito antiga (4.2., Mas faz tudo do jeito que eu precisar dele). I comparado a tomcat (4.1.29, velho demais). Eu verifiquei o tipo de conteúdo com o seguinte código:

URL tomcatUrl = new URL("http://localhost:18080/ppi/jobperform/headertest")//tomcat;
URLConnection tconnect = tomcatUrl.openConnection();
System.out.println("tomcat: " + tconnect.getContentType());


URL jettyUrl = new URL("http://localhost:13818/ppi/jobperform/headertest")//jetty;
URLConnection jconnect = jettyUrl.openConnection();
System.out.println("jetty: " + jconnect.getContentType());

E o resultado foi o seguinte:

código do servlet:

    response.setContentType("");
    response.getWriter().write("Return");

=>
Tomcat:; charset = ISO-8859-1
molhe:

código do servlet:

     response.setContentType("text/plain");
     response.getWriter().write("Return");

=>
Tomcat: text / plain; charset = ISO-8859-1
cais: text / plain

código do servlet:

response.setContentType("text/plain;charset=UTF-8");
response.getWriter().write("Return");

=>
Tomcat: text / plain; charset = UTF-8
cais: text / plain; charset = UTF-8

Assim, parece que o molhe mais velho faz exatamente o que você quer, enquanto tomcat faz o que você tem de mais novo cais.

Respondeu 10/02/2009 em 16:17
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more