Гость
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Не вызывается WriterInterceptor JAX-RS / 9 сообщений из 9, страница 1 из 1
01.07.2021, 19:21
    #40081249
XEugene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вызывается WriterInterceptor JAX-RS
Сам интерцептор
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
@Provider
@CreateRegistryFileResponse
public class CreateRegistryFileInterceptor implements WriterInterceptor {
    
    private static final Logger logger = Logger.getLogger("Employees");
    
    
    @Override
    public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {
        OutputStream stream = context.getOutputStream();
        ByteArrayOutputStream baos = (ByteArrayOutputStream) stream;
        byte[] bytes = baos.toByteArray();
        String fileContent = new String(bytes);
        logger.debug("Interceptor:");
        logger.debug(fileContent);
        context.setOutputStream(stream);
        context.proceed();
    }
}



Аннотация для привязки интерцептора к методу
Код: java
1.
2.
3.
4.
5.
@NameBinding
@Retention(RUNTIME)
@Target({TYPE, METHOD})
public @interface CreateRegistryFileResponse {
}



Метод, на который нужно повесить интерцептор
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
@POST
@CreateRegistryFileResponse
@Path("/file")
@Consumes({MediaType.APPLICATION_JSON})
public Response createRegistryFile(@HeaderParam("Authorization") String token, RegistryParams registryParams) {
    File file = getBean().createFile(registryParams);
    return Response.ok(file, MediaType.APPLICATION_OCTET_STREAM).header("content-disposition","attachment; filename =file.getName()).build();
    }




Привязка интерцептора в классе, реализующем приложение
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
@ApplicationPath("/")
public class RestApp extends Application {

    @Override
    public Set<Class<?>> getClasses() {
        Set<Class<?>> classes = new HashSet<Class<?>>();
        classes.add(RestApi.class);
        classes.add(CreateRegistryFileInterceptor.class);
        return classes;
    }
}




Метод createRegistryFile вызывается, aroundWriteTo нет.
...
Рейтинг: 0 / 0
02.07.2021, 09:30
    #40081300
XEugene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вызывается WriterInterceptor JAX-RS
Это на вебсфере.
...
Рейтинг: 0 / 0
02.07.2021, 10:38
    #40081313
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вызывается WriterInterceptor JAX-RS
Наверно вызывается. Только в логах не видно. Сделай info уровень.

Код: java
1.
logger.info("Interceptor: {}", fileContent);
...
Рейтинг: 0 / 0
02.07.2021, 10:58
    #40081321
XEugene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вызывается WriterInterceptor JAX-RS
mayton
Наверно вызывается. Только в логах не видно. Сделай info уровень.

Код: java
1.
logger.info("Interceptor: {}", fileContent);



Я брейкпоинт ставлю. В createRegistryFile останавливается, в aroundWriteTo нет.
...
Рейтинг: 0 / 0
02.07.2021, 12:08
    #40081347
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вызывается WriterInterceptor JAX-RS
Плохая практика IMHO. Ставить брейкпоинт в тайм-критичные приложения.

А в логах есть какие-то новые месседжи? Варниги.
...
Рейтинг: 0 / 0
02.07.2021, 15:43
    #40081429
XEugene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вызывается WriterInterceptor JAX-RS
mayton
Плохая практика IMHO. Ставить брейкпоинт в тайм-критичные приложения.

А в логах есть какие-то новые месседжи? Варниги.
Нет никаких, кроме тех, что писались и раньше.
...
Рейтинг: 0 / 0
02.07.2021, 15:51
    #40081435
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вызывается WriterInterceptor JAX-RS
А есть какой-то tutorial, где WriterInterceptor точно-точно сработает?
...
Рейтинг: 0 / 0
02.07.2021, 16:34
    #40081446
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вызывается WriterInterceptor JAX-RS
.
...
Рейтинг: 0 / 0
02.07.2021, 18:09
    #40081472
XEugene
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Не вызывается WriterInterceptor JAX-RS
mayton
А есть какой-то tutorial, где WriterInterceptor точно-точно сработает?

Честно говоря, из двух источников скомпилировал. Какого-то одного, чтобы точно работал, не знаю.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Не вызывается WriterInterceptor JAX-RS / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]