2012-04-10 11 views
1

クライアントとサーバー間の通信にGWT RPCを使用しています。 私はサーバ側でブラウザの日付を読むことができるようにするために、ServiceDefTargetクラスのsetRpcRequestBuilderを使用してリクエストを援助し、必要なヘッダを追加したいと考えています。クライアント側ではGWT RequestBuilderクライアント日付をHTTP日付に設定します。POSTヘッダー

私が使用している:

private static final RpcRequestBuilder rpcReqBuilder = new RpcRequestBuilder() { 

    @Override 
    protected RequestBuilder doCreate(String serviceEntryPoint) { 

     RequestBuilder builder = super.doCreate(serviceEntryPoint); 
     builder.setHeader("Date1", new Date().toString()); 
     return builder; 

    } 
}; 

...... 

((ServiceDefTarget) greetingService).setRpcRequestBuilder(rpcReqBuilder); 

//rpc call 
greetingService.greetServer(.........) 

を私は、サーバー側では:すべてのデフォルトのヘッダの中

Date1: Tue Apr 10 12:19:28 BST 2012 

[OK]を印刷し

HttpServletRequest request = this.getThreadLocalRequest(); 
    Enumeration<?> enumeration = request.getHeaderNames(); 
    while (enumeration.hasMoreElements()) { 
     String name = (String) enumeration.nextElement(); 
     String value = request.getHeader(name); 
     System.out.println(name + ": " + value); 
    } 

、これは正常に動作しますが、 "Date"ヘッダーを設定しようとすると、サーバー側に表示されません。何故ですか?誰でも手伝うことができます。私は非常に役に立つでしょう。 :)

答えて

3

Dateは、HTTPのpredefined headerある、と定義することにより、任意の値にcannot let you set itXMLHttpRequest(GWTのRequestBuilderの背後にあるもの)。独自のヘッダを作り上げるとき、あなたは、ヘッダー、MyApp-DateまたはX-MyApp-Dateのようなものを追加し、ネットワーク上の他のものとの競合を避けるために接頭辞を追加する必要があります。とにかく

、(GWTはGWT-RPCとRequestFactoryにX-GWT-PermutationX-GWT-Module-Baseでそれをしないように)

+1

ありがとうございます。それは私が思っていたことのようなものです。 私はそれを認識しているプレフィックスについては、私はちょうど "テストモード"になっているので、まだそれほど注意を払っていません。 :)あなたの答えとアドバイスをありがとう。 –

関連する問題