我的基于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
我想知道为什么注销网址生效不起作用,这是我做错了还是缺少一些配置?请帮忙。
答案 0 :(得分:2)
检查您的web.xml。您必须添加以下部分。
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
您可以将index.jsp替换为您的选择。
我不知道您的应用有什么问题。这是我创建的测试应用程序。
我的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
替换它,一切正常!变量名中不允许-
。