Bonjour,
J'enregistre des données dans un répertoire (C:\cahedire)..
Dans ma classe j'aimerai récupérer des données en cache sur mon disque dur, mais j'ai pas trouvé d'exemple..
Quelqu'un pourrait m'aider ??
Bonne journée,
Manitobaa
Bonjour,
J'enregistre des données dans un répertoire (C:\cahedire)..
Dans ma classe j'aimerai récupérer des données en cache sur mon disque dur, mais j'ai pas trouvé d'exemple..
Quelqu'un pourrait m'aider ??
Bonne journée,
Manitobaa
Salut,
j'ai pas trop compris ton problème, tu as stocké des données en cache avec ehcache et tu veux les relire ? ou tu as des données dans un certain format et tu veux les lire avec ehcache ?
J'ai stocké des données avec ehcache et j'aimerai les relires
Merci de ton aide
et quel est le pb exactement ? tu as une erreur ? tu ne trouves pas tes données ?
Enfaite voici un extrait de code :
J'ai bien un fichier Test.data avec les données en cache mais j'ai retour de valeur de 0 et j'arrive pas comprendre ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 manager = CacheManager.create(getServletContext().getRealPath("WEB-INF/ehcache.xml")); cache = manager.getCache("Test"); out.println(cache.getSize());
Merci encore de ton aide
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 <cache name="Test" maxElementsInMemory="0" maxElementsOnDisk="1000" eternal="false" overflowToDisk="true" diskSpoolBufferSizeMB="20" timeToIdleSeconds="300" timeToLiveSeconds="600" memoryStoreEvictionPolicy="LFU"> </cache>
tu n'arrives pas à lire les données du cache après un redémarrage de ton appli ou pendant son exécution ?
Les deux![]()
ça m'étonne pendant l'exécution, tu n'as pas forcément les données dans les fichiers du cache mais les données sont accessibles.
Pour avoir les données après un redémarrage, il faut ajouter à la config du cache
Comment est géré l'arrêt du cache manager ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part diskPersistent="true"
J'ai pas encore regarder quand le serveur redémarrait...
Si t'arrive à me décrire comment y procéder c'est sympa
Merci encore de ton aide
Si tu gères le cacheManager à la main, il faut que tu fasses quand ton application s'arrête (par ex, avec un ServletContextListener)
Sinon, il faut que tu définisse un hook sur le shutdown de la JVM
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 manager.shutdown();
http://ehcache.sourceforge.net/docum.../shutdown.html
Par contre maintenant les données sont accessible dans une redémarrage de serveur ..
Par contre il arrive pas à lire les données pendant un redémarrage...
Merci
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 manager = CacheManager.create(getServletContext().getRealPath("WEB-INF/ehcache.xml")); cache = manager.getCache("Test"); PrintWriter out = response.getWriter(); Element element = cache.get("bouh"); Movie mySecondMovie = (Movie)element.getObjectValue(); out.println("<br/><br/>Cache chargé dans l'objet mySecondMovie<br/>"); out.println("Nom : " + mySecondMovie.getName() +"<br/>"); out.println("Description : " + mySecondMovie.getDescription() +"<br/>"); out.println("Acteur : " + mySecondMovie.getActor() +"<br/><br/><br/>");
Null pointer exception
euh, peux tu fournir plus de détails ? la stacktrace par ex...
ma ligne 40 c'est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 PWC1406: Servlet.service() for servlet Servlet threw exception java.lang.NullPointerException at servlet.Servlet.doGet(Servlet.java:40) at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1461) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:293) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:187) at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:647) at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97) at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185) at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:351) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:249) at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:146) at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:746) at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:655) at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:905) at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:161) at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:136) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:103) at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:89) at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76) at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53) at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57) at com.sun.grizzly.ContextTask.run(ContextTask.java:69) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) |#]
Code : Sélectionner tout - Visualiser dans une fenêtre à part Movie mySecondMovie = (Movie)element.getObjectValue();
je comprends pas tout ce que tu dis :
"Par contre maintenant les données sont accessible dans une redémarrage de serveur ..
Par contre il arrive pas à lire les données pendant un redémarrage..."
Tu peux lire les données ou pas ? il y a qqchose dans le fichier test.data ? as tu un fichier test.index ?
As tu géré le shutdown du cachemanager ?
Alors j'ai bien un fichier test.data et test.index, il y a bien quelques choses deadans...
Lors d'un redémarrage du serveur je n'arrive plus à lire les données en cache... et je n'ai pas gérer le shutdown du cachemanager..
T'arrive à me dire pourquoi je n'arrive pas à lire mes données lors d'une redémarrage ??
je pense que c'est parce que le cachemanager n'est pas arrêté correctement.
D'habitude je ne gère pas le cachemanager, dans mes applications, c'est Spring qui s'en charge et qui l'arrête donc proprement.
J'ai fais des tests simples : si je n'arrête pas le cachemanager, je n'ai pas les données, si j'arrête le cachemanager, tout marche comme prévu.
Partager