Я пытаюсь написать HTTP-сервер на основе netty, который принимает текст в качестве входных данных и возвращает изображение в качестве вывода. Это изображение генерируется «на лету» на основе входного текста.http потоковый ответ неподдерживаемый тип сообщения: class org.jboss.netty.handler.stream.ChunkedStream
Я скопировал логику org.jboss.netty.example.http.file.HttpStaticFileServerHandler в мой собственный обработчик, и вместо того, чтобы писать DefaultFileRegion в качестве выходного сигнала в канале,
final FileRegion region = new DefaultFileRegion(raf.getChannel(), 0, fileLength);
writeFuture = ch.write(region);
Я делаю следующий в моем собственном обработчике:
InputStream imageIOStream = imageGenerator.generateImage(inputText);
ChannelFuture writeFuture = ch.write(new ChunkedStream(imageIOStream));
Но я получаю следующее исключение на сервере, когда я пытаюсь написать обратно клиенту.
java.lang.IllegalArgumentException: unsupported message type: class org.jboss.netty.handler.stream.ChunkedStream
at org.jboss.netty.channel.socket.nio.SocketSendBufferPool.acquire(SocketSendBufferPool.java:56)
at org.jboss.netty.channel.socket.nio.NioWorker.write0(NioWorker.java:463)
at org.jboss.netty.channel.socket.nio.NioWorker.writeFromUserCode(NioWorker.java:390)
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:137)
at org.jboss.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:76)
at org.jboss.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:68)
at org.jboss.netty.channel.Channels.write(Channels.java:611)
at org.jboss.netty.channel.Channels.write(Channels.java:578)
at org.jboss.netty.channel.AbstractChannel.write(AbstractChannel.java:251)
Может кто-нибудь, пожалуйста, помогите мне.
Спасибо! Это сработало! –
Прохладный. Не могли бы вы отметить этот вопрос, как ответили. Благодарю. – Veebs