우리는 CF 8과 함께 EHCache를 사용하여 HTTP를 통해 RESTful 인터페이스를 사용하여 중앙 서버에 항목을 캐시합니다. 캐시 서버에 개체의 cfquery 개체를 캐시하려고합니다.Coldfusion 8 및 HTTP PUT - 개체를 PUT 할 수있는 방법이 있습니까?
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 예제가 차선책 일 것입니다.
미리 감사드립니다.
추 신 :이 접근 방식은 데이터 무결성에 문제가 있으며 가장 중요한 것은 충분히 빠르지 않으므로 text/JSON 등에 직렬화를 사용하고 싶지 않습니다.
CF9로 전환 할 수 있습니까? 내장 된 ehcache 훅이 있습니다. – kevink
cfhttpparam/value에 전달 된 값은 텍스트 또는 바이너리 인 문자열이어야합니다. 당신은 arguments.item을 어떤 식 으로든 serialize해야 할 것입니다. –
@kevink - CF9는 중앙 캐시 서버 AFAIK가 아닌 로컬 시스템으로의 캐싱 만 허용합니다. 우리는 클러스터 된 환경을 사용하고 있습니다. –