Запуск Netty 3.3.1-Final Secure Chat из коробки приводит к ошибке «Режим клиент / сервер еще не установлен» - PullRequest
3 голосов
/ 02 марта 2012

Я использую пример Netty 3.3.1 Secure Chat из коробки, и он выходит из строя. Похоже, что у клиента возникла проблема - ошибка, которая гласит: «Режим клиент / сервер еще не установлен».

Я прочитал документацию по SSLHandler, в которой говорится: «Если isIssueHandshake имеет значение false (по умолчанию), вам нужно позаботиться о вызове рукопожатия самостоятельно. В большинстве случаев, когда SslHandler используется в« режиме клиента », вы хотите выдать рукопожатие после установления соединения. если для setIssueHandshake установлено значение true, вам не нужно об этом беспокоиться, так как об этом позаботится SslHandler. "

Я пытался установить setIssueHandshake в true на клиенте до вызова метода sslHandler.handshake, но это не изменило / не исправило ошибку.

Есть предположения?

Спасибо за любую помощь для этого нетто новичка!

Это вывод клиента:

2 марта 2012 г. 10:25:27 securechat.SecureChatClientHandler handleUpstream ИНФОРМАЦИЯ: [id: 0x00c2a132] ОТКРЫТО 2 марта 2012 г. 10:25:27 securechat.SecureChatClientHandler handleUpstream ИНФОРМАЦИЯ: [id: 0x00c2a132, /127.0.0.1:3082 => localhost / 127.0.0.1: 8443] BOUND: /127.0.0.1:3082 2 марта 2012 г. 10:25:27 securechat.SecureChatClientHandler handleUpstream ИНФОРМАЦИЯ: [id: 0x00c2a132, /127.0.0.1:3082 => localhost / 127.0.0.1: 8443] ПОДКЛЮЧЕНО: localhost / 127.0.0.1: 8443 2 марта 2012 г. 10:25:27 securechat.SecureChatClientHandler исключениеCaught ВНИМАНИЕ: Неожиданное исключение из нисходящего потока. java.lang.IllegalStateException: режим клиент / сервер еще не установлен. на com.sun.net.ssl.internal.ssl.SSLEngineImpl.kickstartHandshake (SSLEngineImpl.java:609) на com.sun.net.ssl.internal.ssl.SSLEngineImpl.beginHandshake (SSLEngineImpl.java:667) на org.jboss.netty.handler.ssl.SslHandler.handshake (SslHandler.java:358) at securechat.SecureChatClientHandler.channelConnected (SecureChatClientHandler.java:54) at securechat.SecureChatClientHandler.handleUpstream (SecureChatClientHandler.java:43) в org.jboss.netty.handler.codec.oneone.OneToOneDecoder.handleUpstream (OneToOneDecoder.java:61) в org.jboss.netty.handler.ssl.SslHandler.channelConnected (SslHandler.java:1202) на org.jboss.netty.channel.Channels.fireChannelConnected (Channels.java:227) в org.jboss.netty.channel.socket.nio.NioWorker $ RegisterTask.run (NioWorker.java:786) в org.jboss.netty.channel.socket.nio.NioWorker.processRegisterTaskQueue (NioWorker.java:250) на org.jboss.netty.channel.socket.nio.NioWorker.run (NioWorker.java:192) в java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (ThreadPoolExecutor.java:886) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:908) на java.lang.Thread.run (Thread.java:619)

Это вывод сервера:

ИНФОРМАЦИЯ: [id: 0x01893efe, /127.0.0.1:3082 => /127.0.0.1:8443] OPEN 2 марта 2012 г. 10:25:27 securechat.SecureChatServerHandler handleUpstream ИНФОРМАЦИЯ: [id: 0x01893efe, /127.0.0.1:3082 => /127.0.0.1:8443] BOUND: /127.0.0.1:8443 2 марта 2012 г. 10:25:27 securechat.SecureChatServerHandler handleUpstream ИНФОРМАЦИЯ: [id: 0x01893efe, /127.0.0.1:3082 => /127.0.0.1:8443] СОЕДИНЕНО: /127.0.0.1:3082

1 Ответ

3 голосов
/ 03 марта 2012

Это известная ошибка в примере. Если вы посмотрите на SecureChatClientPipelineFactory.java, вы увидите, что строка, которая вызывает SSLEngine.setUseClientMode(true), была закомментирована по ошибке. Пожалуйста, раскомментируйте это, и тогда это будет работать. Эта проблема была исправлена ​​в 3.4.0.Alpha1.

...