URL-адрес выхода из GAE с ошибкой 404

Мое приложение на основе GAE java использует только одного пользователя Google - администратора. Для веб-страниц администратора я генерирую URL-адрес выхода, используя

UserServiceFactory.getUserService().createLogoutURL("/")

Сгенерированный URL-адрес всегда имеет / ноль в конце, и нажатие на него дает «Ошибка 404 NOT_FOUND».

I Проблема возникает на сервере разработки, а также в облаке. На сервере разработки этот сгенерированный URL-адрес всегда выглядит так: http://localhost:8080/myapp/myurl/0, а при фактическом развертывании в облаке он аналогичен http://myapp.appspot.com/myapp/myurl/0

Интересно, почему сгенерированный URL-адрес выхода из системы не работает, я что-то делаю неправильно или пропустил какую-то конфигурацию? пожалуйста помоги.


person Gopi    schedule 20.07.2010    source источник


Ответы (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.

person Manjoor    schedule 21.07.2010
comment
Это уже есть в моем web.xml. Точная ошибка, которую я получаю, это HTTP ERROR 404 Проблема с доступом к /myapp/myurl/0. Причина: NOT_FOUND - person Gopi; 21.07.2010
comment
Эй, спасибо за ваши усилия. Я заметил URL-адрес выхода на вашей странице как «http://rqtest123.appspot.com/_ah/logout?continue=https://www.google.com/accounts/Logout%3Fcontinue%3Dhttp://rqtest123.appspot.com/%26service%3Dah'. Хотя в моем случае сам этот URL-адрес становится неверным, как я уже упоминал в своем вопросе. - person Gopi; 21.07.2010
comment
Можете ли вы предоставить мне URL вашего приложения? - person Manjoor; 21.07.2010
comment
Извините, но я не могу предоставить URL-адрес приложения, потому что, как я уже упоминал, оно разрешено только одному пользователю - администратору, и никто другой не сможет получить к нему доступ. Я попытаюсь воспроизвести его в другом тестовом развертывании и проверить. - person Gopi; 22.07.2010
comment
+1 Спасибо за помощь. Проблема была странной, как я написал в своем ответе. - person Gopi; 05.10.2010

Наконец нашел!!!

Ранее через мой контроллер spring я передавал созданный URL-адрес выхода из системы как

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

И мой код JSP выглядел так:

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

Имя переменной logout-url было проблемой. Заменил на logoutUrl и все заработало! - не допускается в имени переменной.

person Gopi    schedule 05.10.2010