クライアントとサーバー間の通信にGWTRPCを使用しています。サーバー側でブラウザーの日付を読み取れるようにしたいので、ServiceDefTargetクラスのsetRpcRequestBuilderを使用してリクエストをコスチューム化し、必要なヘッダーを追加します。
私が使用しているクライアント側では:
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(.........)
サーバー側では、次のことを行います。
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);
}
すべてのデフォルトヘッダーの中でこれが出力されます
Date1: Tue Apr 10 12:19:28 BST 2012
わかりました。これは問題なく機能しますが、「Date」ヘッダーを設定しようとすると、サーバー側に表示されません。何故ですか?誰でも助けることができます。私はとても役に立ちます。:)