2012-03-02 1 views
0

J'essaye de mettre en place ehcache avec JRuby Rails. Stocker un objet Java dans ehcache fonctionne bien, mais le récupérer me pose des problèmes. Si je trace sur l'objet qui ehcache retours moi, je reçois ceci:ehcache avec JRuby Rails

[ key = mipsObject, [email protected], version=1, hitCount=1, 
    CreationTime = 1330679995356, LastAccessTime = 1330679995357 ] 

Maintenant, comment puis-je accéder à la valeur?

Je ne suis pas sûr que ce soit un objet java étant tracé ou un objet rubis ...

code:

def store_object (obj) EHCACHE.put ("obj", obj) fin

def get_object EHCACHE.get ("obj") # me donne l'objet ci-dessus. Il doit uniquement renvoyer sa valeur end

Répondre

1

La méthode Ehcache.get renvoie un objet Elément Ehcache qui contient la valeur ainsi que certaines métadonnées. Si vous voulez obtenir la valeur réelle, vous avez deux options. L'une est que vous pouvez appeler la méthode getValue() sur l'objet Element renvoyé par Ehcache.get(). JRuby vous permet d'appeler cette méthode comme « valeur » tout simplement si vous préférez:

EHCACHE.get("obj").value 

En second lieu, au lieu d'utiliser la méthode Ehcache.get(), vous pouvez utiliser la notation d'accès au tableau pour obtenir la valeur directement. Ceci est un peu de magie Ruby nous avons ajouté à l'API Ehcache dans les liaisons JRuby:

EHCACHE["obj"] # returns the value directly 

espoir qui aide.

Vous pouvez lire mon blog pour plus d'informations sur l'utilisation Ehcache avec JRuby: http://jvoegele.blogspot.com/2010/11/ehcache-for-jruby-and-rails-now-with.html

+0

Thx Jason, je vais lire votre blog dans un instant. En attendant, puis-je utiliser EHCACHE comme magasin de session. En d'autres termes, si j'ajoute quelque chose à l'EHCACHE, sera-t-il ajouté à la portée de l'application ou à la portée de la session en cours? –

+0

Super blog. Dommage que je ne l'ai pas trouvé hier. THX. –