質問

私たちは持っているWebサービスをテストするために突堤を使用していると私はそれがContent-Typeヘッダの下なしの文字セットで応答するために取得しようとしています。

誰もがこれを行う方法を知っていますか?

私はレスポンスを傍受し、nullにCharacterEncodingを設定しようとしましたか「」それは例外を与えます。

私は、突堤6.1.6を使用しています。

役に立ちましたか?

解決

私は今、私の自己、それを試してみましたが、私は認めなければならない、私の桟橋は非常に古いものである(4.2。しかし、すべてのもの、私はそれを必要とする方法がありません)。私は(古すぎる4.1.29)Tomcatにそれを比較しました。私は次のコードでコンテンツタイプをチェックします:

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

そして結果は以下の通りであった:

サーブレットのコード:

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

=>
Tomcatの:;のcharset = ISO-8859-1
桟橋ます:

サーブレットのコード:

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

=>
Tomcatの:テキスト/平野;のcharset = ISO-8859-1
桟橋:text / plainの

サーブレットのコード:

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

=>
Tomcatの:テキスト/平野;のcharset = UTF-8
桟橋:テキスト/平野;のcharset = UTF-8

Tomcatはあなたが新しい桟橋から得たもの行いながら、古い桟橋は、正確に何をしたいない場合ように見えるようにします。

他のヒント

私はあなたが使用して、この問題ではないのサーブレットコンテナと思いますが、あなたはあなたのサーブレット内の応答に何をすべきか。あなたは、パラメータnullとServletResponseをさんに、setContentType(2.3)またはのsetCharacterEncoding(2.4、2.5)を呼び出すことによって、あなたの文字エンコーディングを設定するか、それが動作するはず""場合は(自分自身をしようとしませんでした)。しかし、それ以外のエンコーディング<のhref = "http://java.sun.com/products/servlet/2.2/javadoc/javax/servletを設定、にgetWriterを呼び出すの前にの上に名前のメソッドを呼び出してください/ServletResponse.html#getWriter()」のrel = "nofollowをnoreferrer">何の効果を持っていないでしょう!

charsetが非常に便利な情報です。 代わりに(文字セットを認識し、尊重)私はむしろ正しいことを行うために、サービスの消費者を教えるためにしようと間違ったことをやって良い製品(突堤)を強制しようとしているの。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top