在GWT中,请求被发送到XXXX.rpc,映射到“GWT Controller”(RemoteService)。将被调用的方法名称隐藏在此请求的帖子中。
有没有办法将方法名称作为附加HTTP标头或URL的一部分发送?这样我们就可以在访问日志中记录方法名称。
我知道有一个RpcRequestBuilder
类,但我不知道如何扩展它以将方法名称添加到标题或URL。
答案 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;
}
};