0

これはかなり単純なことだと思いますが、ドキュメント、API、およびバージョン間でこれ以上の不一致があるライブラリに出くわしたことを思い出すことはできません。(公平を期すために、それらは存在すると確信しています!)私が調べたリソースからわかる限り、これは「現在」にかなり近いと思いますが、エラーが発生しています(AtmosphereHandlerマップはありません/path/to/service/point のリクエスト)、次に何を試すべきかについて少しガイダンスが必要です。

詳細バージョンを再投稿できますが、要するに...

1) web.xml には、このサーブレット エントリがあります (最新の git チャット サンプルから):

<servlet>
    <description>AtmosphereServlet</description>
    <servlet-name>AtmosphereServlet</servlet-name>
    <servlet-class>org.atmosphere.cpr.AtmosphereServlet</servlet-class>
    <async-supported>true</async-supported>
    <init-param>
        <param-name>org.atmosphere.cpr.Broadcaster.supportOutOfOrderBroadcast</param-name>
        <param-value>false</param-value>
    </init-param>
    <!--<init-param>-->
    <!--<param-name>org.atmosphere.cpr.broadcasterClass</param-name>-->
    <!--<param-value>org.atmosphere.util.SimpleBroadcaster</param-value>-->
    <!--</init-param>-->
    <load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>AtmosphereServlet</servlet-name>
    <url-pattern>/path/to/service/point</url-pattern>
</servlet-mapping>

2) Web アプリには次のクラス定義があります (Scala で):

@AtmosphereHandlerService(path = "/path/to/service/point")
class MyCustomAtmoHandler extends AtmosphereHandler with Logging with OtherStuff {
   override def onRequest {...}
   override def onStateChange {...}
   override def destroy {...}

注: ガイドとして使用していたドキュメントには、注釈パラメーター「パス」が含まれていませんでした。これをコンパイルするために追加する必要がありました。

編集: これは Jetty バージョン 9.0.4.v20130625 を使用しています

4

1 に答える 1