2012-08-13 41 views
1

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

你所要做的下一件事是添加了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:44817 ERROR [。org.apache.catalina.core.ContainerBase [jboss.web] [本地主机] [/ DoQuBookWeb]] ERREUR的LOR德拉配置德拉CLASSE D'écoute de l'applica重刑(应用程序监听器)org.jboss.resteasy.plugins.cache.server.ServletServerCache:抛出java.lang.ClassNotFoundException:org.jboss.resteasy.plugins.cache.server.ServletServerCache

(抱歉,法国BTW )

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

因为我用maven信息,我包括RestEasy的高速缓存,核心2.3.1.GA依赖性的dI'm在这一点上很有点失落......

预先感谢您的帮助。



编辑:

我看着部署在Web服务器的档案。而且我也发现了罐RestEasy的缓存芯(含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正确捆绑它。但是什么?这仍然是神秘的。

有什么想法?我不明白为什么这个班还没有找到。

(对不起了这么长的帖子)

+0

您是否将具有该类的相关JAR添加到您的构建路径中?如果是这样,你是否为这个类设置了正确的'ClassLoader'? – m0skit0 2012-08-13 12:50:55

+0

你好,我该如何为ServlerServerCache类指定一个ClassLoader?我该如何检查Jar是否在构建路径中(我的意思是,这是由maven完成的,不是吗?) – Godjam 2012-08-13 12:52:49

+0

你在使用什么IDE? – m0skit0 2012-08-13 12:59:23

回答

2

我用RestEasy的,并试图在JBoss缓存,它包含。我刚加入

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

给我的朋友。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依赖关系。