Tomcat не подхватывает файл класса - файл JSP не отображается - PullRequest
2 голосов
/ 17 ноября 2011

У меня есть Java-код, который является контроллером для страницы JSP, называемый: HomeController.java. Код выглядит следующим образом:

@Controller
public class HomeController {

    protected final transient Log log = LogFactory.getLog(getClass());

    @RequestMapping(value = "/mypage")
    public String home() {
        System.out.println("HomeController: Passing through...");
        return "home";
    }
}

На странице jsp нет ничего особенного: home.jsp. Если я пойду по этому адресу:

http://localhost:8080/adcopyqueue/mypage

Я могу посмотреть мою страницу, и все работает нормально. Также на странице Dos кота я вижу комментарий:

HomeController: Passing through...

Как и ожидалось.

Теперь в том же каталоге, что и у меня HomeController.java, я создал еще один файл с именем: LoginController.java. Ниже приведен код:

@Controller
public class LoginController {

    protected final transient Log log = LogFactory.getLog(getClass());

    @RequestMapping(value = "/loginpage")
    public String login() {
        System.out.println("LoginController: Passing through...");        
        return "login";
    }
}

И там же, где у меня есть home.jsp, я создал login.jsp.

Также в папках tomcat LoginController.class существует в той же папке, что и HomeController.class, и login.jsp в той же папке, в которой находится home.jsp.

Но когда я иду на этот URL: http://localhost:8080/adcopyqueue/loginpage

Ничего не отображается! Я думаю, что Tomcat не получает LoginController.class B / C в окне Dos Tomcat, я не вижу этот комментарий:

LoginController: Passing through...

Вместо этого я вижу следующее, что я не знаю, что они означают?

[ INFO] [http-8080-1 01:43:45] (AppInfo.java:populateAppInfo:34) got manifest
[ INFO] [http-8080-1 01:43:45] (AppInfo.java:populateAppInfo:36) manifest entrie
s 8

Структура и код для HomeController.java и LoginController.java плюс файлы jsp совпадают. Я понятия не имею, почему Tomcat видит один из файлов, а не другой?

Чистая сборка не помогла. У кого-нибудь есть идеи? Любая помощь с благодарностью.

Это часть файла web.xml: файл конфигурации:

<servlet-mapping> <servlet-name>spring</servlet-name> <url-pattern>/app/*</url-pattern>               </servlet-mapping> <filter-mapping> <filter-name>rewriteFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> –

только что обнаружил: Я изменил возвращаемое значение метода в LoginController из:

@RequestMapping(value = "/login")

К следующему:

@RequestMapping(value = "/myLastName")

И это просто сработало! Веб-страница выглядит как ожидалось, и в окне Tomcat Dos теперь я вижу этот комментарий:

LoginController: прохождение через ...

Я подозревал, что раньше называл имена, и пытался использовать "login", "loginpage" и "loginpage1", но ни один из них не работал! Понятия не имею, почему это происходит! Это проблема с любым именем со словом «логин» в нем! В конце концов это должно работать с "логином", хотя !!!

Еще одна вещь, которую я только что заметил: LoginController НЕ будет работать, пока значение = "/ любое имя, начинающееся с логина"

Так, например, Логин, страница входа, ... не будет работать. Тем не менее, pagelogin работает, то есть имя не должно начинаться со слова: логин.

1 Ответ

0 голосов
/ 18 ноября 2011

Хорошо, это было причиной ... ответил мой менеджер ... возможно, это поможет кому-нибудь в будущем: -)

В urlrewrite.xml были установлены правила для:

<!-- Add rules here for anything that shouldn't be served up by Spring MVC. -->

Итак, мы прокомментировали следующие строки, чтобы пропустить правило:

<rule>
    <from>/login*</from>
    <to>/login.jsp</to>
</rule>
<rule>
    <from>/logout*</from>
    <to>/logout.jsp</to>
</rule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...