2013-03-13 2 views
0

Я делаю стресс-тест с нашим сервером tomcat, который общается со своими клиентами через технологию websocket. Поэтому, когда я пытаюсь использовать более 150 одновременных пользователей на стороне клиента, я получаю это исключение, и я не знаю, что сервер хочет сказать.Исключительное исключение ответа на подтверждение связи

java.util.concurrent.ExecutionException: java.io.IOException: Invalid handshake response 
    at com.ning.http.client.providers.netty.NettyResponseFuture.abort(NettyResponseFuture.java:297) 
    at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.abort(NettyAsyncHttpProvider.java:1376) 
    at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.access$800(NettyAsyncHttpProvider.java:137) 
    at com.ning.http.client.providers.netty.NettyAsyncHttpProvider$WebSocketProtocol.handle(NettyAsyncHttpProvider.java:2400) 
    at com.ning.http.client.providers.netty.NettyAsyncHttpProvider.messageReceived(NettyAsyncHttpProvider.java:1178) 
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
    at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:792) 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) 
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.unfoldAndFireMessageReceived(ReplayingDecoder.java:600) 
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.callDecode(ReplayingDecoder.java:584) 
    at org.jboss.netty.handler.codec.replay.ReplayingDecoder.messageReceived(ReplayingDecoder.java:445) 
    at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:75) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564) 
    at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:559) 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) 
    at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) 
    at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:94) 
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.processSelectedKeys(AbstractNioWorker.java:372) 
    at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:246) 
    at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:38) 
    at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102) 
    at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:722) 
Caused by: java.io.IOException: Invalid handshake response 
    ... 23 more 

Дайте мне знать, если вы могли бы помочь.

Благодаря

ответ

0

Вы должны следовать тому же правилу, что вы следовали на стороне клиента браузер

, который находится на вашей стороне клиента вы могли бы добавить код, приведенный ниже

$ atmosphere.subscribe (запрос);

то же самое, что вам нужно сделать и на вашем java-клиенте. Поскольку ваш запрос не подписан на атмосферу, атмосфера не подтверждает ваш запрос. На стороне Java сначала сделать атмосферу подключения, а затем вы должны стрелять ваши запросы ...

0

Наиболее вероятной причиной является вы, возможно, не на стороне клиента-адрес без «WebSocket», как:

«WS : // "+ HOST +": "+ PORT +"/websocket "

Если вы пропустили/websocket в коде на стороне клиента во время разговора с сервером, вы получите это исключение