1

Tomcat で CometD を使用しています。Oort を実行しようとしましたが、2 つの OORT ノード間の通知に問題があるようです。

静的を試しましたが、MultiCastConfigServlet に切り替えて、ばかげた設定エラーが発生していないことを確認しました。

web.xml のセットアップは次のとおりです。

<servlet>
    <servlet-name>cometd</servlet-name>
    <servlet-class>org.cometd.server.CometdServlet</servlet-class>

    <init-param>
        <param-name>transports</param-name>
        <param-value>org.cometd.server.transport.JSONTransport</param-value>
    </init-param>
    <init-param>
        <param-name>allowedTransports</param-name>
        <param-value>JSONTransport</param-value>
    </init-param>
    <init-param>
        <param-name>timeout</param-name>
        <param-value>10000</param-value>
    </init-param>


    <init-param>
        <param-name>jsonContext</param-name>
        <param-value>org.cometd.server.JacksonJSONContextServer</param-value>
    </init-param>
    <init-param>
        <param-name>maxInterval</param-name>
        <param-value>10000</param-value>
    </init-param>

    <init-param>
        <param-name>long-polling.multiSessionInterval</param-name>
        <param-value>2000</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
</servlet>

<servlet-mapping>
    <servlet-name>cometd</servlet-name>
    <url-pattern>/cometd/*</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>oort</servlet-name>
    <servlet-class>org.cometd.oort.OortMulticastConfigServlet</servlet-class>
    <load-on-startup>2</load-on-startup>
    <init-param>
        <param-name>oort.url</param-name>
        <param-value>http://localhost:8080/context/cometd</param-value>
    </init-param>
    <init-param>
        <param-name>oort.channels</param-name>
        <param-value>/appchannel/**,/seti/**</param-value>
    </init-param>
</servlet>

 <servlet>
    <servlet-name>Seti</servlet-name>
    <servlet-class>org.cometd.oort.SetiServlet</servlet-class>
    <load-on-startup>3</load-on-startup>
    <async-supported>true</async-supported>
</servlet>

     <servlet>
    <servlet-name>initializer</servlet-name>
    <servlet-  class>com.company.server.bayeux.BayeuxInitializerServlet</servlet-class>
    <load-on-startup>4</load-on-startup>
    <async-supported>true</async-supported>
</servlet>

seti を使用して、ユーザーをセッションに関連付けます。この関連付けは、oort を介してすべての oot ノードと同期する必要があります。

私の意見では、新しい OOrt ノードが機能するようになった場合、Oort.CometListener cometJoined() をトリガーする必要があります。しかし、このリスナー メソッドが呼び出されることはありません。

これが tomcat の問題なのか、プログラム エラーなのかはわかりません。

4

0 に答える 0