2012-08-13 42 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依賴關係。