直接从Java调用GWT RPC服务

时间:2009-08-25 19:04:01

标签: java gwt gwt-rpc

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

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

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

3 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:1)

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

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

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

答案 2 :(得分:0)

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