我试图运行GWT 2.4示例应用程序" MobileWebApp"。我得到了一个500" No Realm"我尝试通过Eclipse在开发模式下运行应用程序时出错。
我知道这是一个身份验证问题。
我不熟悉Google App Engine或Jetty,但是通过查看web.xml我可以看到有一个servlet过滤器,它使用appengine UserService可能会将用户重定向到Google进行身份验证。< / p>
我正在使用:
我包括以下web.xml的摘录。我不确定其他信息对诊断此问题会有什么帮助。
<security-constraint>
<display-name>
Redirect to the login page if needed before showing
the host html page.
</display-name>
<web-resource-collection>
<web-resource-name>Login required</web-resource-name>
<url-pattern>/MobileWebApp.html</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>*</role-name>
</auth-constraint>
</security-constraint>
<filter>
<filter-name>GaeAuthFilter</filter-name>
<!--
This filter demonstrates making GAE authentication
services visible to a RequestFactory client.
-->
<filter-class>com.google.gwt.sample.gaerequest.server.GaeAuthFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>GaeAuthFilter</filter-name>
<url-pattern>/gwtRequest/*</url-pattern>
</filter-mapping>
以下是Eclipse控制台中的输出:
[WARN] Request /MobileWebApp.html failed - no realm
[ERROR] 500 - GET /MobileWebApp.html?gwt.codesvr=127.0.0.1:9997 (127.0.0.1) 1401 bytes
Request headers
Host: 127.0.0.1:8888
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Response headers
Content-Type: text/html; charset=iso-8859-1
Content-Length: 1401
非常感谢任何有用的建议!
2011年11月11日编辑:我添加了Jetty标签,因为它似乎与此问题相关。
答案 0 :(得分:1)
如果您的第一个请求失败,只需获取/MobileWebApp.html页面,那么它可能不是身份验证问题。您是否为该项目启用了GAE(不仅仅是GWT)?这可能是一个问题。
我在某处读到有两种方法可以在Eclipse中调试应用程序,一种是使用run as / webapp,而忘记了哪一种是另一种(我不使用Eclipse)。其中一个有效,另一个没有。
如果这不起作用,您可以尝试更换内置码头:
最后一个选项是-noserver,但是你不能调试服务器端代码,只需要客户端GWT的东西:首先使用mvn jetty启动jetty:运行然后使用-noserver在Eclipse中调试GWT param。
答案 1 :(得分:0)
我遇到了同样的问题。最后我注意到,当我切换到较新版本的Appengine时,较旧的Appengine库与新的一起保留在WEB-INF / lib中。 删除它们解决了这个问题。