Question

J'utilise la jetée pour tester un webservice que nous avons et je suis en train de le faire pour répondre sans charset sous l'en-tête de type de contenu.

Quelqu'un sait comment faire cela?

J'ai essayé d'intercepter la réponse et le réglage de la CharacterEncoding à null ou « » mais qui donne des exceptions.

J'utilise Jetty 6.1.6.

Était-ce utile?

La solution

Je l'ai essayé moi-même, mais je dois admettre que, ma jetée est très ancienne (4.2., Mais fait tout la façon dont je besoin). Je l'ai comparé à tomcat (4.1.29, vieux aussi). J'ai vérifié le type de contenu avec le code suivant:

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());

Et le résultat est le suivant:

Code Servlet:

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

=>
tomcat:; charset =
ISO-8859-1 jetée:

Code Servlet:

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

=>
tomcat: text / plain; charset = ISO-8859-1
jetée: text / plain

Code Servlet:

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

=>
tomcat: text / plain; charset = UTF-8
jetée: text / plain; charset = UTF-8

Il semble que la jetée plus fait exactement ce que vous voulez, tout tomcat fait ce que vous avez obtenu de la jetée plus récente.

Autres conseils

Je pense que ce pas une question dont contenant servlet que vous utilisez, mais ce que vous faites avec la réponse dans votre servlet. Si vous définissez votre codage de caractères en appelant setContentType de ServletResponse (2.3) ou setCharacterEncoding (2.4, 2.5) avec le paramètre null ou "" il devrait fonctionner (ne pas essayer moi-même). Mais assurez-vous d'appeler les méthodes nommées ci-dessus avant appelant getWriter, sinon paramétrage de l'encodage n'a pas d'effet !

Le jeu de caractères est très utile d'information. Au lieu d'essayer de forcer un bon produit (jetée) pour faire la mauvaise chose que je préférerais essayer d'enseigner le consommateur du service pour faire la bonne chose (reconnaître et honorer charset).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top