" HTTP错误:500无领域"运行GWT" MobileWebApp"样品

时间:2011-11-08 17:19:45

标签: google-app-engine gwt jetty

我试图运行GWT 2.4示例应用程序" MobileWebApp"。我得到了一个500" No Realm"我尝试通过Eclipse在开发模式下运行应用程序时出错。

我知道这是一个身份验证问题。

我不熟悉Google App Engine或Jetty,但是通过查看web.xml我可以看到有一个servlet过滤器,它使用appengine UserService可能会将用户重定向到Google进行身份验证。< / p>

我正在使用:

  • Eclipse 3.7(Indigo SR1)
  • 适用于Eclipse 2.4的Google插件
  • m2eclipse的

我包括以下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标签,因为它似乎与此问题相关。

2 个答案:

答案 0 :(得分:1)

如果您的第一个请求失败,只需获取/MobileWebApp.html页面,那么它可能不是身份验证问题。您是否为该项目启用了GAE(不仅仅是GWT)?这可能是一个问题。

我在某处读到有两种方法可以在Eclipse中调试应用程序,一种是使用run as / webapp,而忘记了哪一种是另一种(我不使用Eclipse)。其中一个有效,另一个没有。

如果这不起作用,您可以尝试更换内置码头:

  • 添加GWT参数:-server com.google.appengine.tools.development.gwt.AppEngineLauncher
  • VM param:-javaagent:/path_to/appengine-agent.jar

最后一个选项是-noserver,但是你不能调试服务器端代码,只需要客户端GWT的东西:首先使用mvn jetty启动jetty:运行然后使用-noserver在Eclipse中调试GWT param。

答案 1 :(得分:0)

我遇到了同样的问题。最后我注意到,当我切换到较新版本的Appengine时,较旧的Appengine库与新的一起保留在WEB-INF / lib中。 删除它们解决了这个问题。