我们将 EHCache 与 CF 8 结合使用,通过 HTTP 使用 RESTful 接口(interface)在中央服务器上缓存内容。我正在尝试将 cfquery 对象 缓存到缓存服务器。
如果我直接调用 EHCache(即将它存储在本地缓存中),我可以让它工作,但如果我尝试通过 HTTP 缓存在远程服务器上,我就会遇到问题。
我使用的代码如下:
<cfhttp url="http://localhost:8080/myCache/myKey"
method="put"
result="r"
timeout="2"
throwonerror="true" >
<cfhttpparam type="body" value="#ARGUMENTS.item#" />
</cfhttp>
CF 不喜欢对 #ARGUMENTS.item#
的引用,它提示 Complex object types cannot be converted to simple values.
谁能给我一个例子,说明如何使用 CF 将对象放在 http 上?如果使用 CF 无法做到这一点,那么 Java 示例将是下一个最好的选择。
非常感谢!
PS:我不想对文本/JSON 等使用序列化,因为这种方法存在数据完整性问题,最重要的是它不够快。
最佳答案
是的,您必须序列化参数结构,因为如果不进行某种形式的序列化,就无法通过 HTTP 传递二进制对象。正如已经提到的,您可以使用 JSON 来序列化对象。 JSON 的替代方法也可以使用 cfwddx 标记,它可以将对象转换为 XML。但 JSON 可能更好,因为它不像 cfwddx 生成的 XML 那样冗长。
关于java - Coldfusion 8 和 HTTP PUT - 有没有办法 PUT 一个对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2517741/