gpt4 book ai didi

java - GWT RPC 调用在编译模式下不工作

转载 作者:行者123 更新时间:2023-11-30 07:19:24 24 4
gpt4 key购买 nike

我正在构建一个 GWT 应用程序。以前,每当我从网页请求图像时,该请求都会发送到客户端类,该类用于提供图像。这适用于 GWT 生成的 URL 以及编译后的独立文件 URL。

但是现在我已经用对服务器的 Ajax (RPC) 调用替换了那部分,其中服务器端类从客户端类接收必要的参数,并提供由客户端类发送的图像到用户界面。这适用于 GWT 生成的 URL,但是在编译之后,当我尝试将它作为独立的 HTML 运行时(通过在 URL 栏中提供文件的路径),没有触发 Ajax 请求。

是因为 RPC 调用需要一个服务器来响应(与 jQuery Ajax 调用相反,后者仅在桌面上运行良好)?我如何在桌面模式下也模仿 Ajax 行为?调用看起来像这样:

private final GreetingServiceAsync response = GWT.create(GreetingService.class); //(I haven't changed the defualt names..:))
response.greetServer(i, j,new AsyncCallback<String,String>() { // i,j is already calculated, server needs to know these to pass an image url
public void onSuccess(String url1, String url2) {...}
public void onFailure(Throwable caught) {...}
});

最佳答案

你完全从GWT结构中走出来了。

编译项目后,所有 GWT 代码都会转换为 JavaScript。

即使没有服务器在运行,并且如果您从 C://myapp/myapp.html 等文件系统访问您的 html 文件。浏览器会将其作为静态 Web 服务

page ..ofcourse 在那个 html 页面里面会有你的 app.nochahe.js 这是纯 javascript 。

因此,浏览器会毫不犹豫地显示所有内容..但它永远不会成为所谓的 Web 应用程序,也永远不会创建任何 ajax 或任何其他服务器

打电话。

在您的情况下,您没有运行任何服务器并将它们作为静态页面访问并期望它们连接服务器并带来您的数据,这是完全不可能的。

所以首先请在开发模式下运行||调试您的代码。

开始运行或调试项目后..在开发模式选项卡中生成的 url 将如下所示。

h t t p : / / localhost : 8888 / MyModule.html ? gwt.codesvr = localhost : 9997

你可能对参数gwt.codesvr有疑问。

它运行您的客户端 Java 代码,该代码被编译为类文件,但尚未编译为 JavaScript 文件。

完成您的实现后,编译项目并将您的 war 文件夹导出到任何服务器上以测试或访问它们作为

ex:localhost:8080/myapp/someservice.

来到所谓的 AJAX 调用,它们是 RPC在 GWT 中。RPC 是与服务器通信的 GWT 内部结构,通常它们都是一般的 impl 类,它们扩展了 RemoteServiceServlet,它通过 HTTP 协议(protocol)向客户端提供数据并且不可能被调用他们没有运行服务器。

如果您仍然对不同的 GWT 应用程序模式感到困惑,请参阅此差异 link

关于java - GWT RPC 调用在编译模式下不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14703931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com