GAE注销网址给出错误404

时间:2010-07-20 03:27:41

标签: java google-app-engine session logout user-management

我的基于GAE java的应用程序仅使用一个谷歌用户 - 管理员。对于管理员网页,我使用

生成注销网址
UserServiceFactory.getUserService().createLogoutURL("/")

生成的url总是在末尾有一个/ 0,然后单击它会出现'Error 404 NOT_FOUND'。

I问题出现在开发服务器和云上。在开发服务器上,此生成的URL总是看起来像 - http://localhost:8080/myapp/myurl/0,当实际部署在云上时,它类似于http://myapp.appspot.com/myapp/myurl/0

我想知道为什么注销网址生效不起作用,这是我做错了还是缺少一些配置?请帮忙。

2 个答案:

答案 0 :(得分:2)

检查您的web.xml。您必须添加以下部分。

<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

您可以将index.jsp替换为您的选择。

修改

我不知道您的应用有什么问题。这是我创建的测试应用程序。

http://rqtest123.appspot.com/

我的web.xml看起来像

<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">

        <welcome-file-list>
            <welcome-file>index.jsp</welcome-file>
        </welcome-file-list>
</web-app>

我认为你应该再次检查你的web.xml。

答案 1 :(得分:1)

终于找到了!!!

早些时候,通过我的spring控制器,我将创建的注销网址传递为

model.put("logout-url", UserServiceFactory.getUserService().createLogoutURL("/"));

我的JSP代码看起来像 -

<a class="link" href="${logout-url}">Logout</a>

变量名称logout-url是问题所在。用logoutUrl替换它,一切正常!变量名中不允许-