1

関連あれこれ_

大きなURIを処理できるはずのPOST Webサービス(ジャージー/グリズリー、研究目的のみ)を開発しています。しかし、URI が 8000 文字を超えると、400 Bad Request Exception が発生し、それ以上の説明はありません。グリズリーの maxHttpHeaderSize 属性までデバッグ/追跡しました。この属性を設定しようとしましたが失敗しました。サーバーとリクエストを開始する方法は次のとおりです。

GrizzlyServerFactory.createHttpServer(BASE_URI, new PackagesResourceConfig("org.test"));

JSONObject s = new JSONObject(webResource.queryParams(queryParams).post(String.class));

ご協力ありがとうございました!乾杯、ダニエル

4

3 に答える 3

2

問題は、GrizzlyServerFactory が既に開始されている HttpServer を返すことです。そのため、その場で再構成することはできません。ここで [1] HttpServer を起動しない GrizzlyServerFactory のコピーを作成したので、コードは次のようになります。

    HttpServer httpServer = GrizzlyServerFactory.createHttpServer(BASE_URI, rc);
    httpServer.getListener("grizzly").setMaxHttpHeaderSize(Integer.MAX_VALUE);

    // don't forget to start the server explicitly
    httpServer.start();

それが役立つことを願っています。

[1] https://github.com/oleksiys/samples/blob/master/jersey-grizzly2-ext/src/main/java/com/sun/jersey/api/container/grizzly2/ext/GrizzlyServerFactory.java

于 2013-07-25T20:40:50.467 に答える
0

短いURIで試しましたか? おそらく、あなたのサーバーは非常に長い URI を処理できません。

詳細については、こちらをご覧ください:さまざまなブラウザーでの URL の最大長は?

URL からのリクエスト データをリクエスト ボディに入れてみませんか?

于 2013-07-25T13:48:45.120 に答える