Фильтрация статического контента на Джерси - PullRequest
3 голосов
/ 21 октября 2010

Я пытаюсь обслуживать статический контент (HTML-форму, которая вызывает ресурс REST Джерси) из того же веб-приложения, что и сервлет, который обрабатывает запросы к ресурсу.Как я понимаю, я могу отфильтровать запросы к статическому контенту от сервлета Джерси.Мой web.xml выглядит следующим образом, но в настоящий момент я не могу получить доступ ни к статическому контенту, ни к ресурсу ... оба работали отдельно.

<filter>
    <filter-name>my-filter</filter-name>
    <filter-class>com.sun.jersey.spi.container.servlet.ServletContainer</filter-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.WebPageContentRegex</param-name>
        <param-value>/*.html</param-value>
    </init-param>
</filter>
<filter-mapping>
    <filter-name>my-filter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
    <servlet-name>my-service</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
        <param-name>com.sun.jersey.config.property.packages</param-name>
        <param-value>com.mydomain.ws.myservice</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>my-service</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

Ответы [ 2 ]

3 голосов
/ 26 июля 2011

FWIW Ваша первоначальная проблема была, вероятно, потому что значение параметра для WebContentRegex не было регулярным выражением.Хорошо, технически это было, но это не соответствует тому, что вы, вероятно, хотите.Вместо этого вы должны попробовать что-то вроде /.*.html.

0 голосов
/ 12 мая 2011

Я настраиваю свои службы таким образом, чтобы остальные службы находились в своем собственном подпути, отдельном от статического содержимого:

<servlet-mapping>
    <servlet-name>ServletAdaptor</servlet-name>
    <url-pattern>/rest/*</url-pattern>
</servlet-mapping>
...