OK,我想我找到了一個解決方法,所有這些proble女士。希望它可以幫助別人。
首先,您需要升級您的ehCache,然後將陶土罐添加到您的類路徑中,以便能夠使用兵馬俑。這意味着您需要刪除與Railo捆綁在一起的ehcache.jar,因爲這是一箇舊版本,不適用於兵馬俑。這些罐子是:
- ehcache的核心 - ## ## ##罐子(## ## ##爲版本。)
- 的Ehcache-兵馬俑 - ## ##。。。 ##罐子
- SLF4J的API - ## ## ##罐子
- SLF4J-JDK14 - 。## ## ##罐子
- SLF4J-log4j12 - 。## ##。 。#。jar。
- terracotta-toolkit-1.3-runtime - ##。##。##。jar
- 從Railo lib庫中刪除「ehcache.jar」,否則將無法加載Terracotta。
接下來,您需要添加< terracottaConfig URL =「本地主機:9510」/>和<赤土集羣=「真」/>行到你的ehcache.xml中,這需要在你的類路徑。這在兵馬俑網站上有很好的記錄。
ehCache使用ContextClassLoader()加載所有類,它失敗,它在ClassLoaderUtil上回退。 Railo contextClassLoader()默認設置爲「org.apache.catalina.loader.WebappClassLoader」(Tomcat ClassLoader)。這個類加載器無法正確找到railo對象,因此您需要將其更改爲「railo.loader.classloader.RailoClassLoader」。由於這是一個每個線程(即每個請求)上下文類加載器,你需要在你的onRequestStart開始調用下面的命令()方法:
<cfset getPageContext().getThread().currentThread().setContextClassLoader(getPageContext().getClass().getClassLoader()) />
這應該可以解決了Ehcache和休眠。接下來的會議中,使用帶有兵馬俑的tomcat閥似乎是一個問題,因爲閥門似乎在Railo處理請求之前調用。因此使用「org.apache.catalina.loader.WebappClassLoader」,並且引發了一個未找到類的異常。解決此問題的方法是將會話本身存儲在ehcache和Terracotta中,並將其分佈到集羣中。問題是存儲在Terracotta中的對象需要可序列化,並且J2EE會話基於不可序列化的「org.apache.catalina.connector.SessionFacade」。因此,爲了解決這個限制,我只是使用structCopy(session)命令將J2EE會話轉換爲一個可串行化的簡單結構,然後將生成的結構放入ehcache中。
這應該能夠讓你與兵馬俑和鐵路。
如何直接通過java對象與ehcache交談或使用任何Railo ehCache提供程序,然後通過cacheGet和cachePut –