ハンドシェイクを成功させる際に問題が発生しています。Vysper をスタンドアロンで実行するか、シンプルな Java サーバー (自分で作成したもの、または事前にパッケージ化されたサンプルの 1 つ) に埋め込んで実行している場合でも、JavaScript クライアント (自分自身または事前にパッケージ化されたサンプルの 1 つ) から接続しようとすると、同じエラー状態が発生します。返されるエラーは HTTP 405 応答で、Chrome のコンソールに「予期しない応答コード: 405」として報告されます。
スタンドアロン サーバーの構成:
「spring-config.xml」には次の追加があります。
<bean id="websocketEndpoint" class="org.apache.vysper.xmpp.extension.websockets.WebSocketEndpoint">
<property name="port" value="8080" />
<property name="contextPath" value="/ws" />
</bean>
そしてサーバーコンストラクターで:
<ref bean="websocketEndpoint"/>
サーバーの起動時に発生する可能性のあるエラー条件:
サーバーは正常に起動しているように見えますが、次の可能性のある問題が報告されています (スタンドアロン サーバーと組み込みサーバーの両方で)。
org.eclipse.jetty.server.Server@2af081 STOPPED
+-SelectChannelConnector@0.0.0.0:8080
+-qtp29384701{8<=6<=8/254,0}
+-ServletContextHandler@32efa7@32efa7/ws,null started
+-{}
+-{}
+-SessionHandler@1fbfd6 started
+-ServletHandler@6b9c84 started
+-[/ws]=>org.apache.vysper.xmpp.extension.websockets.XmppWebSocketServlet-23860799{}
接続試行時のエラー:
クライアントから接続しようとすると、両方のタイプのサーバー インスタンスに次のログが記録されます。
17:04:02,137 | DEBUG | org.eclipse.jetty.util.log | REQUEST /ws/ws on org.eclipse.jetty.server.nio.SelectChannelConnector$3@c3615b
17:04:02,137 | DEBUG | org.eclipse.jetty.util.log | sessionManager=org.eclipse.jetty.server.session.HashSessionManager@1767f84
17:04:02,137 | DEBUG | org.eclipse.jetty.util.log | session=null
17:04:02,137 | DEBUG | org.eclipse.jetty.util.log | servlet=org.apache.vysper.xmpp.extension.websockets.XmppWebSocketServlet-29347786
17:04:02,137 | DEBUG | org.eclipse.jetty.util.log | servlet holder=
17:04:02,137 | DEBUG | org.eclipse.jetty.util.log | chain=
17:04:02,137 | DEBUG | org.eclipse.jetty.util.log | RESPONSE /ws/ws 405
17:04:02,137 | DEBUG | org.eclipse.jetty.util.log | EOF
そして、クライアント側の Chrome コンソールで:
Unexpected response code: 405
Event {clipboardData: undefined, cancelBubble: false, returnValue: true, srcElement: WebSocket, defaultPrevented: false…}
CloseEvent {reason: "", code: 1006, wasClean: false, clipboardData: undefined, cancelBubble: false…}
続行する方法について何か提案はありますか?