У меня есть приложение Java, развернутое под Glassfish 3.1.2.2, которое использует jersey
для обслуживания отдыхающих. Передний конец написан в angularjs
. Мой web.xml
выглядит следующим образом:Добавление фильтра на сервер Glassfish
<web-app>
<servlet>
<servlet-name>qpark rest 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.restfulservice.restful;org.codehaus.jackson.jaxrs</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>qpark rest service</servlet-name>
<url-pattern>/restservice/*</url-pattern>
</servlet-mapping>
</web-app>
Передний конец работает на другом сервере (Apache). При отправке запроса от переднего конца Glassfish реагирует с ошибкой следующим образом:
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost' is therefore not allowed access.
, который является логическим, поскольку передний конец и фоновым подаются с разных серверов. Чтобы этого избежать, я сконфигурировал filter
, который добавляет Access-Control-Allow-Origin
в заголовок ответа. Этот фильтр должен быть зарегистрирован в web.xml
следующим образом:
<servlet>
<servlet-name>Gateway Servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.spi.container.ContainerResponseFilters</param-name>
<param-value>com.filters.CrossOriginResourceSharingFilter</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Моя проблема заключается в том, что я хочу, чтобы отобразить и этот второй фильтр к каждому restservice. То есть, я хочу добавить что-то вроде этого
<servlet-mapping>
<servlet-name>Gateway Servlet</servlet-name>
<url-pattern>/restservice/*</url-pattern>
</servlet-mapping>
Но это запрещено.
Вопрос заключается в том, чтобы добавить/объединить/зарегистрировать эти два фильтра в web.xml
Отлично! Это работает. благодаря – Luixv