1

我尝试在 JBoss 服务器上添加缓存系统,如 Resteasy 文档: Resteasy Caching Features,第 29.3 部分中所述。(本地服务器端响应缓存):

接下来你要做的是添加一个ServletContextListener,org.jboss.resteasy.plugins.cache.server.ServletServerCache。这必须在 web.xml 文件中的 ResteasyBootstrap 侦听器之后指定。

所以我做到了,我添加了一个 ServletServerCache 侦听器,正如在 ResteasyBootstrap 侦听器之后的web.xml中所说:

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

不幸的是,这会在部署阶段产生 ClassNotFoundException :

14:01:44,817 错误 [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/DoQuBookWeb]] Erreur lors de la configuration de la classe d'écoute de l'application(应用程序侦听器) org.jboss.resteasy.plugins.cache.server.ServletServerCache: java.lang.ClassNotFoundException: org.jboss.resteasy.plugins.cache.server.ServletServerCache

(对不起法国的顺便说一句)

所以我的问题是:在这种情况下,我是唯一一个吗(这似乎不是谷歌的常见错误)?什么是/是我的错误/s?什么是正确的方法?

有关我使用 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 回答