我一直在研究 Google 开发人员网站上的 GWT 教程,并在此处了解了 GWT RPC 部分。问题的主旨是我仔细按照教程上的说明进行操作,在 Eclipse Juno 上以开发模式运行代码时遇到了问题。错误是:“此 URL 不支持错误 405 HTTP 方法 GET”。
我所处的环境是:
- 日食朱诺 4.2
- Ubuntu 12.04 LTS(最近没有重大更新。)
- 使用默认的 GWT SDK (GWT - 2.4.0)。
- 使用默认的 GAE SDK (App Engine - 1.7.2)。
- Chrome 版本 21.0.1180.89
参考示例中的代码,作为问题的一部分,我开始关注 web.xml 文件和其中的 servlet-mappings。我在 web.xml 代码中的内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<!-- Default page to serve -->
<welcome-file-list>
<welcome-file>StockWatcher.html</welcome-file>
</welcome-file-list>
<!-- Servlets -->
<servlet>
<servlet-name>stockPriceServiceImpl</servlet-name>
<servlet-class>com.google.gwt.sample.stockwatcher.server.StockPriceServiceImpl</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>stockPriceServiceImpl</servlet-name>
<url-pattern>/stockwatcher/stockPrices</url-pattern>
</servlet-mapping>
</web-app>
好消息是服务器正在查找代码,但是在查找代码和呈现代码之间的某个地方,它失败了。
我已经非常彻底地研究了这个问题,但我没有发现任何似乎指向问题原因的东西。我所知道的如下:
- 需要更好地理解 HttpServlet 类。
- GWT 应该负责 doPost 和 doGet 实现。
如果有人对问题可能是什么有任何建议,我会全力以赴。或者对错误含义的另一种解释对我和其他任何遇到此问题的人都有帮助。
编辑:
我能够解决我的问题,部分归功于 Colin Alworth。问题是我是如何考虑访问 servlet 的。浏览 HTML 页面确实是访问应用程序的正确方法,并且因为我没有调用启动 AsyncCallback 方法的方法(不知何故我错过了),所以 HTML 页面和 servlet 似乎断开了连接。