При вызове метода await() класса ChannelFuture после отправки сообщения клиенту, выбрасывается исключение:
java.lang.IllegalStateException: await*() in I/O thread causes a dead lock or sudden performance drop. Use addListener() instead or call await*() from a different thread.
как я понимаю нужно добавить слушатель на ChannelFuture, но в большинстве примеров слушатель добавляется после того как создается экземпляр ChannelFuture:
public class FileHandler extends SimpleChannelUpstreamHandler{
@Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) {
FileInputStream in;
try {
in = new FileInputStream("C:\\Users\\User\\Desktop\\chelovek_gory_stroenie_120852_1600x1200.jpg");
FileRegion region = new DefaultFileRegion(in.getChannel(),0,762511);
ChannelFuture chf = ctx.getChannel().write(region);
chf.addListener(new ChannelFutureListener() {
@Override
public void operationComplete(ChannelFuture future) throws Exception {
// TODO Auto-generated method stub
System.out.println("завершено");
}
});
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
}
Есть ли способ заранее добавить этот слушатель к ChannelFuture, чтобы каждый раз не добавлять его при создании нового экземпляра?
Фрилансер или Digital-агентство - Как сделать правильный выбор?
Задался вопросом изучения Spring, много информации, много видео, много книг, но нет ни одного плана / схемы, иллюстрации последовательности действий
Требуется подключиться к серверу и получить данные без помощи Retrofit или других библиотек, кроме непосредственно Android SDKAPI предоставляет для...
Есть класс Warship, в котором есть метод, ну например turnLeft()Я создаю класс Destroyer, который наследует от Warship, потом класс GroznyyKlass, который наследует...