Domanda

sto usando Jetty per testare un webservice che abbiamo e sto cercando di farlo di rispondere senza charset sotto l'intestazione Content-Type.

Qualcuno sa come fare questo?

Ho provato intercettare la risposta e l'impostazione del CharacterEncoding su null o "", ma che dà eccezioni.

Sto usando Jetty 6.1.6.

È stato utile?

Soluzione

ho provato la mia auto ora, ma devo ammettere, il mio molo è uno molto vecchio (4.2., Ma fa tutto il modo in cui ho bisogno). Ho confrontato a Tomcat (4.1.29, troppo vecchio). Ho controllato il tipo di contenuto con il seguente codice:

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 il risultato è stato il seguente:

Codice Servlet:

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

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

Codice Servlet:

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

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

Codice Servlet:

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

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

Quindi, sembra come se il pontile vecchio fa esattamente ciò che si vuole, mentre Tomcat fa quello che avete ottenuto dal molo più recente.

Altri suggerimenti

Credo che questa non è una questione di cui servlet container si utilizza, ma ciò che si fa con la risposta all'interno del vostro servlet. Se si imposta il codifica dei caratteri chiamando setContentType di ServletResponse (2.3) o setCharacterEncoding (2.4, 2.5) con il parametro null o "" dovrebbe funzionare (non provate me stesso). Ma essere sicuri di chiamare i metodi sopra citati prima chiamando getWriter, altrimenti impostare la codifica non avrà alcun effetto !

Il set di caratteri è informazioni molto utili. Invece di cercare di forzare un buon prodotto (molo) per fare la cosa sbagliata avrei preferito cercare di insegnare al consumatore del servizio a fare la cosa giusta (riconoscere ed onorare charset).

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