2011-08-12 9 views
2

JettyのResourceHandlerを使用してPOST要求に応答できますか?もしそうなら、どうですか?JettyのResourceHandlerを使用してPOSTリクエストに応答することはできますか?

は、コンテキストのために、ここでは桟橋のチュートリアルからResourceHandler使用configuring a file serverスニペットです:

public class FileServer 
{ 
    public static void main(String[] args) throws Exception 
    { 
     Server server = new Server(); 
     SelectChannelConnector connector = new SelectChannelConnector(); 
     connector.setPort(8080); 
     server.addConnector(connector); 

     ResourceHandler resource_handler = new ResourceHandler(); 
     resource_handler.setDirectoriesListed(true); 
     resource_handler.setWelcomeFiles(new String[]{ "index.html" }); 

     resource_handler.setResourceBase("."); 

     HandlerList handlers = new HandlerList(); 
     handlers.setHandlers(new Handler[] { resource_handler, new DefaultHandler() }); 
     server.setHandler(handlers); 

     server.start(); 
     server.join(); 
    } 
} 

答えて

2

ResourceHandlerのみGETリクエストをサポートしているようです。これは、ResourceHandlerは静的リソース(ファイル、ディレクトリ)のみを処理するので意味があります。とにかくPOST入力は破棄されます。

POSTリクエストに返信するためにResourceHandlerが必要なシナリオを作成するのは難しいですが、実際にこれを実現したい場合は、ResourceHandlerをラップしてGET POSTリクエストのメソッド。 http://www.eclipse.org/jetty/documentation/current/writing-custom-handlers.html#passing-request-and-response

+0

私はあなたのために**シナリオを持っています...私たちは、POST要求に対する '定義済みの応答 'に対してプログラムをテストしたいとしましょう。 1つの解決策は、予め定義された応答を異なるファイルにそれぞれ保存することである。後でテストの間、私たちは容易さ(怠惰?)のために 'ResourceHandler'によって提供されるそれらのファイルを使用します。 – Stephan

+0

POSTハンドリングのカスタムハンドラは、ここにあります。http://stackoverflow.com/a/11285610/363573 – Stephan

+0

jetty-server-9.3.11.v20160721の時点で、Resource HandlerはGETメソッドとHEADメソッドのみをサポートしています。 – Stephan

関連する問題