我尝试在JBoss服务器上添加缓存系统,如Resteasy文档中所述: Resteasy Caching Features,第29.3部分。 (本地服务器端响应缓存):
接下来要做的是添加一个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]] Erreur lors de la configuration de la classe d'écoutedel'application (应用程序监听器)org.jboss.resteasy.plugins.cache.server.ServletServerCache:java.lang.ClassNotFoundException:org.jboss.resteasy.plugins.cache.server.ServletServerCache
(抱歉法国人)
所以我的问题是:在这种情况下我是唯一的一个(它似乎不是谷歌的常见错误)?我的错误/是什么?什么是正确的方式?
有关我使用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/
所以,imho,Maven2正确捆绑它。但是什么?这仍然是神秘的。
有什么想法吗?目前尚不清楚为什么仍然没有找到这门课程。
(很抱歉这么长的帖子)
答案 0 :(得分: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依赖项。