java - ServletServerCache 和 ClassNotFoundException 之谜

标签 java web-services maven-2 resteasy jboss6.x

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

The next thing you have to do is to add a ServletContextListener, org.jboss.resteasy.plugins.cache.server.ServletServerCache. This must be specified after the ResteasyBootstrap listener in your web.xml file.

所以我这样做了,我在 ResteasyBootstrap 监听器之后添加了一个 ServletServerCache 监听器,如 web.xml 中所述:

<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'écoute de l'application (application listener) 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部署”之后,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 正确地捆绑了它。但什么?这仍然很神秘。

有什么想法吗?我不清楚为什么仍未找到该类(class)。

(抱歉,帖子太长了)

最佳答案

我使用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 依赖项。

关于java - ServletServerCache 和 ClassNotFoundException 之谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11934556/

相关文章:

java - 如何在捕获 IOException 时关闭 ServerSocket 连接?

java - 尝试从 WebService 获取数据时出现 "Invalid JSON primitive"错误

maven-2 - 如何使用 Maven 在 RAD 中构建 J2EE EAR 文件?

java - 安卓 java.lang.IllegalArgumentException : Unable to find native library: main

java - WebDriver 无法定位元素(链接/Java)

c# - WCF错误: Soap Headers are not supported by the None Message Version

java - 网络应用架构

eclipse - 在 Eclipse 中编译并运行 OSGI 应用程序

java - 当我从 cmd 运行 java Maven 项目时,我得到 MojoExecutionException

java集合和errorlist混合问题