Tomcat: не добавляется завершающий символ "/" при поиске каталога - PullRequest
4 голосов
/ 21 октября 2011

Я развернул архив .war в Tomcat 7.0.22 (Java 1.6, MacOS Lion).Война называется "myapp.war", и Tomcat обслуживает http://localhost/myapp (развернув войну в / webapps / myapp).Это обычное поведение

При обращении к URL-адресу, соответствующему каталогу, к нему следует добавить «/».Для того, чтобы статические файлы (.css, .js ..) работали правильно, это необходимо, но, хотя с примерами сайтов, которые поставляются с Tomcat, это работает (например, посещение http://127.0.0.1:8080/examples внезапно преобразуется в http://127.0.0.1:8080/examples/), на моем сайтеtomcat не добавляет никаких символов "/", что затрудняет поиск статических файлов.При ручном вызове localhost:8080/myapp/ (<- я добавляю косую черту) все работает нормально. </p>

Что должно происходить?Имейте в виду, что я не трогал настройки Tomcat, я просто экспериментирую с тем, что выходит непосредственно из zip-файла Apache!

Спасибо

1 Ответ

1 голос
/ 30 октября 2011

Во-первых, вы должны объяснить больше о вашей ситуации.Как сказал @mico, вот решение:

<filter>
    <filter-name>Jersey Filter</filter-name>
     <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class>
        <init-param>
            <param-name>com.sun.jersey.config.property.packages</param-name>
            <param-value>your package name(s)</param-value>
        </init-param>
    <init-param>
            <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
            <param-value>.*\.jsp|.*\.css|.*\.png|.*\.js|.*\.gif|.*\.jpg</param-value>
        </init-param>
</filter>

<filter-mapping>
    <filter-name>Jersey Filter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
    <dispatcher>FORWARD</dispatcher>
    <dispatcher>INCLUDE</dispatcher>
</filter-mapping>

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

Идея решения основана на:

определении Джерси ServletContainer как фильтра вместо сервлета

Здесь вы можете прочитать больше: http://jersey.576304.n2.nabble.com/Tomcat-trailing-slashes-and-welcome-files-td4684494.html

Здесь говорит, что: If you have a '/*' mapping, then Tomcat won't redirect

Еще один: вы должны увидеть, как tomcat регистрирует ваш запросрешить основную проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...