直接从Java调用GWT RPC服务

有没有一种直接从Java代码调用GWT RPC服务端点的简单方法? 我的意思是真正的Java代码,而不是编译成javascript的Java代码。

我问,因为我们想对GWT RPC接口运行性能基准测试/压力测试。 我想用Java编写测试工具并在JVM中运行它(而不是在浏览器中运行javascript)。

我认为必须有办法做到这一点,因为我认为GWT托管模式需要这样的function。 但是,我无法在GWT运行时中找到任何演示如何干净地执行此操作的代码。 我查看了com.google.gwt.user.client.rpc包,但其中的内容似乎使用了JSNI,纯Java显然无法使用。

GWT SyncProxy允许您从纯Java(而不是JSNI)代码访问GWT RPC服务(例如方法)。 因此,您可以使用它来测试RPC接口。

有关详细信息,请参见http://www.gdevelop.com/w/blog/2010/01/10/testing-gwt-rpc-services/ 。

您是否尝试对服务的业务逻辑进行基准测试,或者GWT-RPC本身的性能如何? 如果您最担心后端代码的执行情况,则可以直接实例化实现服务的类:

MyServiceImpl impl = new MyServiceImpl(); impl.doSomething(); 

如果要测试堆栈的更大片段,包括RPC调用,请查看此处 。 有一个名为“在Web模式下运行测试”的部分,其中包含以下行:’默认情况下,在托管模式下运行的测试在JVM中作为普通Java字节码运行’。 因此,如果您使用所描述的设置,我认为您的测试默认情况下在java中运行。 该页面上还有关于GWT内置分析工具的信息。

您可以使用传统的负载测试工具(如Grinder)来重播对您的服务的发布请求。 这不是你要求的,但它可能是对你的应用程序执行负载测试的更好方法。 Grinder可以模拟许多同时用户等。