1

Resteasy のドキュメント : Resteasy Caching Featuresのパート 29.3 で説明されているように、JBoss サーバーにキャッシュ システムを追加しようとしています 。(ローカル サーバー側の応答キャッシュ) :

次にやらなければならないことは、ServletContextListener、org.jboss.resteasy.plugins.cache.server.ServletServerCache を追加することです。これは、web.xml ファイルの ResteasyBootstrap リスナーの後に指定する必要があります。

それで、ResteasyBootstrap リスナーの後にweb.xmlで述べられているように、ServletServerCache リスナーを追加しました。

<listener>
    <listener-class>
        org.jboss.resteasy.plugins.cache.server.ServletServerCache
    </listener-class>
</listener>

残念ながら、これにより展開フェーズで ClassNotFoundException が生成されます。

14:01:44,817 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/DoQuBookWeb]] アプリケーションの構成でエラーが発生しました (アプリケーション リスナー) org.jboss.resteasy.plugins.cache.server.ServletServerCache: java.lang.ClassNotFoundException: org.jboss.resteasy.plugins.cache.server.ServletServerCache

(フランス語でごめんなさい)

私の質問は次のとおりです。この場合は私だけですか(Googleでは一般的なエラーではないようです)?私の間違いは何ですか?正しい方法は何ですか?

情報については、maven を使用しており、resteasy-cache-core 2.3.1.GA の依存関係を含めていますが、この点でかなり迷っています ...

助けてくれてありがとう。



編集 :

ウェブサーバーにデプロイされたアーカイブを調べました。そして、Jar resteasy-cache-core (ServletServerCache を含む) を見つけました。

プロジェクトのアーキテクチャを簡単に説明します。

- Main project
    - Ear project (generate the deployed EAR)
         - pom.xml
    - Ejb project (generate an embeded JAR)
         - all ejbs 
         - pom.xml
    - Web project (generate an embeded WAR)
         - some js stuff
         - web.xml 
         - pom.xml

「mvn deploy」の後、Maven2 の出力では、以下で満たされた自己完結型の EAR が提供されます。

- lib / *.jar
- META-INF/
    - application.xml
    - etc
- Ejb-1.0.0.jar (all ejbs)
- Web.war
    - js stuff/
    - META-INF/
        - etc
    - WEB-INF/
        - web.xml CALLING ServletServerCache
        - jboss-web.xml
        - jboss-app.xml
        - lib / *.jar WITH resteasy-cache-core.X.X.X.jar
        - classes/

だから、私見、Maven2はそれを正しくバンドルします。しかし、何?これは今でも謎に包まれています。

何か案が ?クラスがまだ見つからない理由は明らかではありません。

(とても長い投稿で申し訳ありません)

4

1 に答える 1

2

私は resteasy を使用し、含まれている jboss-cache を試しました。ちょうど追加しました

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-cache-core</artifactId>
    <version>2.3.5.Final</version> <!--or the version you use-->
</dependency>

私のpom.xmlに、追加しました

<listener>
    <javaee:listener-class>
        org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap
    </javaee:listener-class>
</listener>

<servlet>
    <servlet-name>resteasy-servlet</servlet-name>
    <servlet-class>
        org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher
    </servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>resteasy-servlet</servlet-name>
    <url-pattern>/MyRestContext</url-pattern>
</servlet-mapping>

<context-param>
    <param-name>resteasy.server.cache.maxsize</param-name>
    <param-value>10000</param-value>
</context-param>

<context-param>
    <param-name>resteasy.server.cache.eviction.wakeup.interval</param-name>
    <param-value>5000</param-value>
</context-param>

<listener>
    <listener-class>
        org.jboss.resteasy.plugins.cache.server.ServletServerCache
    </listener-class>
</listener>

私の web.xml ファイルに。

もちろん、他の resteasy 依存関係も忘れずに追加してください。

于 2012-10-30T12:01:52.347 に答える