GWT异步到URL

时间:2011-08-16 05:00:48

标签: gwt gwt-rpc

我正在使用GWT开发一个Web应用程序。我目前正在使用AJAX调用从服务器检索值。我有关于AJAX调用的以下问题:

假设:我有一个应用程序,其名称为:“Application”,入口点类为:“entry.java”

我知道:应用程序可以调用为:http://localhost:8080/Application/entry.html

1。我想知道gwt.getmodulebaseURL()给出的输出URL是什么?

假设:在同一个应用程序中,我有一个名为“ServerValuesService”的服务及其相应的Async。我有相应的serviceImpl,它有一个名为 List<的方法字符串>在服务器端搜索(字符串)

我也可以从服务器检索值。然而,

2。我想知道访问此服务的直接URL是什么?对于Instance,我需要通过给出一个URL(传递String的值)来获取值列表。即我需要访问方法搜索(String)并通过键入以下URL来检索列表:

的http://本地主机:8080 /应用/进入/ serverValuesService字符串= “你好”

我确定上面的网址是错误的。我需要知道URL和相应服务之间的确切转换。这有可能吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

1)在你的情况下它会给你http://localhost:8080/Application。应用程序是您的模块名称。

2)这些服务实际上是HttpServlets,其URL在web.xml文件中定义。但谷歌使用POST方法发送你的变量并为你处理序列化,你要做的是通过GET方法发送它,据我所知,谷歌RemoteServiceServlet没有实现。所以我会说除非你自己扩展这些服务以使用GET方法,但我不知道是否可行。

答案 1 :(得分:1)

  

假设:我有一个应用程序,其名称为:“Application”,入口点类为:“entry.java”

     

我知道:应用程序可以调用为:http://localhost:8080/Application/entry.html

网址http://localhost:8080/Application/entry.html被称为host page网址。在这个html页面中,您使用脚本标记加载GWT模块:

<!-- This script tag is what actually loads the GWT module.  The -->
<!-- 'nocache.js' file (also called a "selection script") is     -->
<!-- produced by the GWT compiler in the module output directory -->
<!-- or generated automatically in hosted mode.                  -->
<script language="javascript" src="calendar/calendar.nocache.js"></script>

因此,如果您将以上示例放在entry.html中,则该模块将从http://localhost:8080/Application/calendar/calendar.nocache.js加载http://localhost:8080/Application/calendar/您的模块基本网址。

  

我想知道访问它的直接URL是什么   服务?对于Instance,我需要通过just获取值列表   给出一个URL(传递String的值)。即我需要访问   方法搜索(String)并通过键入url

来检索列表

GWT RPC使用自定义序列化格式将请求编码到服务器上的RPC服务。 RPC服务在服务器上实现为RemoteServiceServlet的子类。 RemoteServiceServlet处理http POST请求,从客户端反序列化请求并调用子类的适当服务方法。

因此,要直接访问您需要的服务: 1.服务URL 2.请求以GWT的自定义序列化格式编码的有效载荷 3.能够将有效负载HTTP发布到服务URL

1和3很容易获得。您已经知道web.xml中服务映射的URL。您可以从任何http客户端或浏览器插件(如this)发布。困难的部分是以GWT的自定义序列化格式生成请求有效载荷。对于简单的情况,您可以从应用程序生成请求并从Firebug,Fiddler或类似工具捕获原始有效负载,然后使用您的http客户端重放它。