Я создал веб-сервис для отдыха с использованием Jax-rs 2. Он использует AsyncResponse для возврата ответа. Как я могу добавить поддержку CORS для моих веб-сервисов отдыха? Таким образом, любой может получить к нему доступ без каких-либо проблем с перекрестными доменами?
Мой примерный веб-сервис выглядит следующим образом
@GET
@Path("/test")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public void test(@Suspended AsyncResponse asyncResponse){
asyncResponse.resume(Response.ok().build());
}
Спасибо!
У RestEasy есть CorsFilter
. Но поскольку вы используете Glassfish, вы, скорее всего, используете Джерси. У Джерси, похоже, нет такого класса, который мы можем использовать. Тем не менее, CorsFilter
для RestEasy реализует ContainterRequestFilter
и ContainerResponseFilter
(обратите внимание, что это функция Джерси 2.x(JAX-RS 2.0)).
Вы также можете увидеть исходный код для CorsFilter
здесь, в GrepCode. Вы в основном хотите реализовать что-то похожее на этот класс, а затем зарегистрировать его как одноэлемент с приложением.