1

CF 8 で EHCache を使用して、HTTP 経由の RESTful インターフェイスを使用して中央サーバーにデータをキャッシュしています。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などへのシリアライゼーションを使用したくありません。

4

2 に答える 2

3

はい、何らかの形式のシリアル化なしにHTTP経由でバイナリオブジェクトを渡す方法がないため、引数構造をシリアル化する必要があります。すでに述べたように、JSONを使用してオブジェクトをシリアル化できます。JSONの代わりに機能するのは、オブジェクトをXMLに変換できるcfwddxタグです。ただし、cfwddxによって生成されるXMLほど冗長ではないため、JSONの方がおそらく優れています。

于 2010-03-25T20:30:03.750 に答える