1

ハンドシェイクを成功させる際に問題が発生しています。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…} 

続行する方法について何か提案はありますか?

4

0 に答える 0