Frage

Ich bin Jetty mit einem Webservice zu testen, haben wir und ich versuche, es zu bekommen, ohne charset unter den Content-Type-Header zu reagieren.

Wer weiß, wie dies zu tun?

Ich habe versucht, die Antwort Abfangen und die Characteren Einstellung auf null oder „“, aber das gibt Ausnahmen.

Ich bin mit Jetty 6.1.6.

War es hilfreich?

Lösung

Ich versuchte es jetzt mein Selbst, aber ich muss zugeben, meine Anlegestelle sehr alt ist (4.2., Aber tut alles so, wie ich es brauchen). Ich verglich sie mit Kater (4.1.29, alt auch). Ich überprüfte den Inhaltstyp mit dem folgenden Code:

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

Und das Ergebnis war wie folgt:

Servlet-Code:

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

=>
tomcat:; charset = ISO-8859-1
Anlegestelle:

Servlet-Code:

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

=>
tomcat: text / plain; charset = ISO-8859-1
Anlegesteg: text / plain

Servlet-Code:

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

=>
tomcat: text / plain; charset = UTF-8
Anlegesteg: text / plain; charset = UTF-8

So sieht es aus, als ob die ältere Anlegestelle tut genau das, was Sie wollen, während Kater tut, was man von der neueren Anlegestelle bekam.

Andere Tipps

Ich denke, dass dies nicht eine Frage von dem Servlet-Containern Sie verwenden, aber was Sie mit der Antwort in Ihrem Servlet tun. Wenn Sie Ihre Zeichenkodierung festlegen, indem ServletResponse des setContentType (2.3) oder setCharacterEncoding (2.4, 2.5) mit dem Parameter null oder "" Aufruf sollte es funktionieren (versuchte mich nicht). Aber sicher sein, die Methoden, die oben genannt aufrufen, bevor Aufruf getWriter, ansonsten Einstellen der Codierung keine Wirkung haben!

Die charset sind sehr nützliche Informationen. Anstatt zu versuchen, ein gutes Produkt (Jetty) zu zwingen, das Falsche zu tun würde ich lieber versuchen, die Verbraucher des Dienstes zu unterrichten, das Richtige zu tun (erkennen und zu ehren charset).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top