GWT异步到URL

GWT异步到URL,gwt,gwt-rpc,Gwt,Gwt Rpc,我正在使用GWT开发一个web应用程序。我目前正在使用AJAX调用从服务器检索值。我对AJAX调用有以下疑问: 假设:我有一个应用程序,它的名称是:“Application”,入口点类是:“entry.java” 我知道:应用程序可以通过以下方式调用: 1。我想知道gwt.getmodulebaseURL()给出的输出URL是什么? 假设:在同一个应用程序中,我有一个名为“ServerValuesService”的服务及其相应的异步服务。我有相应的serviceImpl,它在服务器端有一个名为L

我正在使用GWT开发一个web应用程序。我目前正在使用AJAX调用从服务器检索值。我对AJAX调用有以下疑问:

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

我知道:应用程序可以通过以下方式调用:

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

假设:在同一个应用程序中,我有一个名为“ServerValuesService”的服务及其相应的异步服务。我有相应的serviceImpl,它在服务器端有一个名为Listsearch(String)的方法

我还可以从服务器检索这些值。但是,

2。我想知道访问此服务的直接URL是什么?例如,我需要获得值列表,只需给出一个URL(传递字符串的值)。i、 e.我需要访问方法搜索(字符串)并通过键入url来检索列表,例如:

http://localhost:8080/Application/entry/serverValuesService?string=“你好”

我确信上面的URL是错误的。我需要知道URL和相应服务之间的精确转换。这可能吗

提前谢谢

1)在您的情况下,它将为您提供。应用程序是您的模块名

2) 实际上,这些服务是独立的,它们的URL在web.xml文件中定义。但谷歌使用POST方法发送变量,并为您处理序列化问题,您试图通过GET方法发送变量,据我所知,GET方法不是由谷歌实现的。因此,我想说不,除非您自己扩展这些服务以使用GET方法,否则这是不可能的,但我不知道这是否可行

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

我知道:应用程序可以通过以下方式调用:

url
http://localhost:8080/Application/entry.html
称为url。在此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

我想知道访问此文件的直接URL是什么 服务例如,我需要通过 提供URL(传递字符串的值)。i、 e.我需要访问 方法搜索(字符串)并通过键入url检索列表

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

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


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

Hi Tahir,谢谢。我在poster插件中尝试了“to service/”,并使用了参数值。但是,我得到的答复是“请求的资源不允许使用指定的HTTP方法(此URL不支持HTTP方法GET)”,因此,我猜下面的答案是正确的!即GWT不支持GET()@Ashok,我也明确说过:“RemoteServiceServlet处理HTTP POST请求”。您也可以使用poster附加组件来执行POST请求。非常感谢。但是,可以做些什么来实现这一点?例如,如果您没有理由使用GWT用于响应RPC请求的相同servlet(换句话说,如果URL不需要相同),我们可以实现普通的http java servlet来实现这一点吗,您可以创建一个不同的servlet来处理GET请求,该请求获取您的参数并返回响应结果。您可以通过将此servlet添加到web.xml中来承载此servlet。然后,您将有两个servlet执行相同的操作。一个用于GWT-RPC,另一个用于通过浏览器直接访问。