2

我一直在尝试几个我在网上找到的示例,这些示例使用 HTTP 请求使用 GWT(通过 Eclipse)开发的 Web 应用程序调用 PHP 脚本。我想一旦我得到这个工作,我可以将这些技术应用到我自己的应用程序中。但是,我很难让它发挥作用。我最接近成功的是在https://developers.google.com/web-toolkit/doc/2.1/tutorial/gettingstarted找到的 StockWatcher 应用程序(我也从 JSON-PHP 实现开始工作了这个示例这里https://developers.google.com/web-toolkit/doc/2.1/tutorial/JSONphp

StockWatcher 示例让您在“war”目录中放置一个 PHP 脚本。当我从基本示例开始时,使用以下代码片段定义 url 字符串(注意:q 的值添加在 XXX = localhost 和YYY = 127.0.0.1:8888 下面的代码片段之后)

private static final String JSON_URL = GWT.getModuleBaseURL() + "stockPrices?q=";
String url = JSON_URL;

这给出了网址

"http://_YYY_/stockwatcher/stockPrices?q=";

即使我将 PHP 脚本移动到 .../war/stockwatcher 目录,我也会收到 404 错误代码。

如果我对网址进行硬编码:

url = YYY /stockPrices.php?q=">http://YYY/stockPrices.php?q= ;

找到 PHP 脚本,但脚本文件只是回显客户端例程。这随后会导致异常,因为客户端例程需要 JSON。

现在,如果我将网址更改为

url = http://_XXX_/StockWatcher/stockPrices.php?q=;

刷新项目,将“war”目录的内容复制到C:\wamp\www\StockWatcher,在我的浏览器中输入XXX/stockwatcher/stockwatcher.html">http: //XXX/stockwatcher/stockwatcher.html(我'正在使用 Chrome),然后一切都像魅力一样工作(我的 PC 上运行了 Wampserver)。

虽然我可能在生产系统中使用 Wampserver,但我仍然想在 Eclipse 中进行调试。Eclipse 和 GWT 插件附带的内置服务器 Jetty 是否不适用于 PHP?

提前非常感谢,比尔

4

1 回答 1

2

如果您不打算在 servlet 容器中部署您的应用程序,那么您绝对没有理由要尝试在 DevMode 的 servlet 容器中运行 PHP 脚本。

要做的事情是:

  1. 将您的 WAMP 服务器指向您的war文件夹,或者将 DevMode 和编译器指向您的 WAMP 服务器提供-war的某个文件夹
  2. 在没有嵌入式 Jetty 的情况下启动 DevMode:将 URL 传递-noserver并使用http://到您的 WAMP 服务器-startupUrl(从 Eclipse,使用Run As → Web Application(在外部服务器上运行)

请参阅https://developers.google.com/web-toolkit/doc/latest/DevGuideCompilingAndDebugging#How_do_I_use_my_own_server_in_development_mode_instead_of_GWT%27s

于 2013-02-13T09:50:18.637 回答