Зарегистрируйте имя метода GWT в журнале доступа - PullRequest
1 голос
/ 03 января 2011

В GWT запросы отправляются на XXXX.rpc, который сопоставляется с «GWT Controller» (RemoteService).Имя метода, который будет вызван, похоронено в сообщении этого запроса.

Есть ли способ отправить имя метода в виде дополнительного HTTP-заголовка или как часть URL?Таким образом, мы можем записать имя метода в наши журналы доступа.

Я знаю, что существует класс RpcRequestBuilder, но я не знаю, как бы расширить его, чтобы добавить имя метода в заголовок или URL.

Ответы [ 2 ]

5 голосов
/ 04 января 2011

Я думаю, что вы должны решить эту проблему иначе, если это возможно. Вот еще одна мысль.

Имя метода на самом деле уже отправлено, но похоронено, как вы сказали. Но на стороне сервера вы можете поймать это имя. В RemoteServiceServlet есть защищенный метод onAfterRequestDeserialized, который дает вам расшифрованную версию данных и специфичен для подобных вещей. Содержит имя метода. Просто расширьте этот метод и зарегистрируйте имя метода там. Таким образом, вам не нужно добавлять трюки в код на стороне клиента.

1 голос
/ 03 января 2011

Я думаю, что эта ссылка может вам помочь

РЕДАКТИРОВАТЬ: Вы должны установить methodName, прежде чем вызывать метод удаленного сервиса.

public class MyRpcRequestBuilder extends RpcRequestBuilder() {
    String methodName;
     public void setMethodName(String name) {
         methodName = name;
     }
     @Override  
    protected RequestBuilder doFinish(RequestBuilder rb) {    
        RequestBuilder rb = super.doFinish(rb);    
        rb.setHeader("method", methodName);    
        return rb;  
    }
};
...