在访问日志中记录GWT方法名称

时间:2011-01-03 19:19:15

标签: gwt logging

在GWT中,请求被发送到XXXX.rpc,映射到“GWT Controller”(RemoteService)。将被调用的方法名称隐藏在此请求的帖子中。

有没有办法将方法名称作为附加HTTP标头或URL的一部分发送?这样我们就可以在访问日志中记录方法名称。

我知道有一个RpcRequestBuilder类,但我不知道如何扩展它以将方法名称添加到标题或URL。

2 个答案:

答案 0 :(得分:5)

我认为如果可能的话,你应该解决这个问题。这是另一个想法。

方法名称实际上已经发送,但是如你所说的那样埋没了。但是在服务器端你可以抓住这个名字。在RemoteServiceServlet中有一个受保护的方法onAfterRequestDeserialized,它为您提供数据的解码版本,并且特定于这些类型。它包含方法名称。只需扩展此方法并在那里记录方法名称。这样您就不必为客户端代码添加技巧。

答案 1 :(得分:1)

我认为此链接可以帮助您.. http://stuffthathappens.com/blog/2009/12/22/custom-http-headers-with-gwt-rpc/

编辑: 你应该在调用远程服务方法之前设置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;  
    }
};