我使用Ning http库使用此代码连接到websocket服务器(Weblogic 12.1.2):
WebSocket ws = new AsyncHttpClient().prepareGet(uri.toASCIIString()).execute(new WebSocketUpgradeHandler.Builder().build()).get();
ws.addWebSocketListener(this);
ws.sendTextMessage(message);
在JUnit测试中运行时,它工作正常。但是当我从applet(在同一台PC上)运行完全相同的代码时,我得到了这个例外:
java.util.concurrent.ExecutionException: java.io.IOException: Invalid handshake response
at com.ning.http.client.providers.netty.NettyResponseFuture.abort(NettyResponseFuture.java:324)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.abort(NettyAsyncHttpProvider.java:1320)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.access$800(NettyAsyncHttpProvider.java:155)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider$WebSocketProtocol.handle(NettyAsyncHttpProvider.java:2312)
at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.messageReceived(NettyAsyncHttpProvider.java:1142)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
可能是什么原因?从wireshark我看到两种情况下WebSocket版本都是13。我不使用安全的ws。
答案 0 :(得分:0)
我运行完全相同的代码,但URI不同,因此它与服务器上的模式不匹配:( 一切正常。