Swa*_*nil 2 gwt gwt-rpc servlet-filters
我正在使用 GWT-RPC 来获取客户端数据,我的要求是解析有效负载以检索内部数据。我需要记录或保留这些数据以用于指标/监控目的。
我正在使用 Servlet Filter 来拦截 HTTP 请求。我可以看到请求看起来像这样 -
5|0|7|http://localhost:8080/testproject|
29F4EA1240F157649C12466F01F46F60|com.test.client.GreetingService|
greetServer|java.lang.String|myInput1|myInput2|1|2|3|4|2|5|5|6|7|
Run Code Online (Sandbox Code Playgroud)
是否有任何标准机制来解析这些数据?我担心编写自己的代码来解析这不是一个好的解决方案,因为当我们将自定义对象传递给 RPC 或从 RPC 传递自定义对象时,此请求有效负载将变得复杂,并且 GWT-RPC 内部解析机制将来可能会发生变化,这可能会破坏我的代码。我遇到了这个,但不确定它是否强大/维护。
还有其他选择吗?任何指示将不胜感激。
使用RPC
GWT 中的类。
您必须提供序列化策略,其强名称在请求标头中传递。
解码响应更加困难。com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.ResponseReader
您可以与 a 一起使用com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader
,但您需要在类路径中包含JsParser
from ;gwt-dev.jar
并且您不能在 Web 应用程序中使用它gwt-dev.jar
,因为它包含 servlet API(等等);因此您必须从中提取相关类才能gwt-dev.jar
在您的网络应用程序中使用它们。
请注意,在这两种情况下,您将重建相同的对象,这些对象将被反序列化以“真正”处理请求,或者被序列化为请求处理的结果。
总而言之,在RemoteServiceServlet
s 的方法上使用 AOP 可能会带来更好的运气和更好的性能。