我正在使用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和相应服务之间的确切转换。这有可能吗?
提前致谢!
答案 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客户端重放它。