Nous utilisons EHCache avec CF 8 pour mettre en cache des éléments sur un serveur central en utilisant une interface RESTful sur HTTP. Je suis en train de mettre en cache un objet cfquery sur le serveur de cache.Coldfusion 8 et HTTP PUT - existe-t-il un moyen de mettre un objet en place?
Je peux obtenir que cela fonctionne si j'appelle EHCache direct (à savoir le stocker dans un cache local) mais si j'essaie de mettre en cache sur un serveur distant via HTTP, je rencontre des problèmes.
Le code que je utilise est la suivante:
<cfhttp url="http://localhost:8080/myCache/myKey"
method="put"
result="r"
timeout="2"
throwonerror="true" >
<cfhttpparam type="body" value="#ARGUMENTS.item#" />
</cfhttp>
CF n'aime pas cette référence à #ARGUMENTS.item#
et il se plaint Complex object types cannot be converted to simple values.
Quelqu'un peut-il me donner un exemple de la façon de mettre un objet sur http en utilisant CF? Si cela n'est pas possible avec CF alors un exemple de Java serait la meilleure chose suivante.
Merci beaucoup d'avance! PS: Je ne veux pas utiliser la sérialisation vers du texte/JSON, etc. car cette approche pose des problèmes d'intégrité des données et surtout, elle n'est pas assez rapide.
Pouvez-vous passer à CF9? Il a construit des crochets d'ehcache. – kevink
La valeur passée dans cfhttpparam/valeur DOIT être une chaîne - texte ou binaire. Vous allez devoir sérialiser arguments.item d'une certaine façon. –
@kevink - CF9 permet uniquement la mise en cache sur le système local, pas sur un serveur cache central AFAIK. Nous utilisons un environnement en cluster. –