powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Не вызывается WriterInterceptor JAX-RS
9 сообщений из 9, страница 1 из 1
Не вызывается WriterInterceptor JAX-RS
    #40081249
XEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам интерцептор
Код: 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
Не вызывается WriterInterceptor JAX-RS
    #40081300
XEugene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это на вебсфере.
...
Рейтинг: 0 / 0
Не вызывается WriterInterceptor JAX-RS
    #40081313
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверно вызывается. Только в логах не видно. Сделай info уровень.

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

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



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

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

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

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


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