Доступ к ресурсам CSS JS в JSP в Mavens (без использования Spring MVC)

У меня есть веб-приложение на основе JSP/Servlet, которое использует Maven и не было реализовано с использованием Spring MVC. Я пытаюсь развернуть это во встроенном контейнере tomcat, используя webapp-runner.

Проблема в том, что css/js и другие ссылки на активы из JSP не загружают эти ресурсы. Когда я запускаю приложение, используя java -jar target/dependency/webapp-runner.jar target/myapp.war, я могу получить доступ к странице, используя http://localhost:8080/index.jsp. Однако ресурсы отсутствуют в http://localhost:8080/assets/css/sample-css.css (пример ссылки).

Обратите внимание, что вообще нет «веб-контекста», который, я думаю, является способом работы встроенного кота. Любые идеи о том, что может быть не так?

Это моя структура каталогов:

-- src
    --- main
        -- java
            --- <servlet related classes in package folder>
        -- webapp
            -- WEB-INF
                -- web.xml
            -- assets
                -- js
                -- css
                -- fonts
                -- img
            -- index.jsp

Когда я упаковываю это приложение, WAR, присутствующий в <project-dir>/target, выглядит так.

            -- META-INF
            -- WEB-INF
                -- web.xml
            -- assets
                -- js
                -- css
                -- fonts
                -- img
            -- index.jsp

Это соответствующая часть pom.xml:

  ...
    <plugins>
        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.6</version>
            <configuration>
                <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory>
                <warName>${project.artifactId}</warName>
                <failOnMissingWebXml>false</failOnMissingWebXml>                    
            </configuration>
        </plugin>
      ...

Вот как я получаю доступ к ресурсам на странице JSP. Я пробовал несколько стилей, но ничего не работает:

 <link type="text/css" href="${pageContext.request.contextPath}/assets/css/bootstrap.min.css" rel="stylesheet">
 <!-- Another way -->
 <link type="text/css" href="assets/css/bootstrap.min.css" rel="stylesheet">

Я ссылался на Как связать файл веб-ресурса из /main/resources в JSP? и ресурсы, на которые он указывает.


person markgarg    schedule 14.07.2015    source источник


Ответы (1)


Для тех, кто сталкивался с той же проблемой раньше, он знает, как я ее решил (временно): я перешел с Servlet 3.1 на 2.5, и это решило ее. Я не могу понять, почему, но теперь это работает.

person markgarg    schedule 06.08.2015