2

Webサービス呼び出しから返された変数をColdFusionがどのようにシリアル化して、それらの大きさ(バイト単位)を把握できるようにするかを知りたいです。

いくつかのWebリクエストが返されるときに問題が発生します(ログステートメントからわかります)が、呼び出しエラーが発生します:Webサービスの呼び出しを実行できません。

これまでに行ったデバッグからの私の予感は、シリアル化して返送しようとしているreturn構造体が大きすぎることです。そのサイズについて、別のログステートメントを追加したいと思います。戻る直前にリモートメソッドでlen(resultStruct)またはlen(serializeJSON(resultStruct))をログに記録できますが、理想的には、一連のチューブを介して返送する実際の長さを持っているはずです。

リクエストを行うコード(機能テストを実行するコンポーネントから取得:-P)は次のとおりです。

<cfinvoke webservice="#remoteFacadeURL#" method="executeTestCase" returnvariable="currMethodResult">
    <cfinvokeargument name="componentName" value="#componentName#"/>
    <cfinvokeargument name="methodNames" value="#getTestsQuery.methodName#"/>
    <cfinvokeargument name="TestRunKey" value="#TestRunKey#"/>
</cfinvoke>
4

1 に答える 1

2

応答を調べて答えを見つけました。シリアル化の種類がcffunctionタグの「returnFormat」属性に依存していることを示す適切なドキュメントを参照してください。これがない場合はデフォルトでWDDXになります。

cffunctionのColdFusion8ドキュメントから:

デフォルトでは、ColdFusionはXMLを除くすべての戻り型(単純な戻り型を含む)をWDDX形式にシリアル化し、XMLデータをXMLテキストとして返します。

リモートCFC関数を呼び出すときに、HTTP要求パラメーターとしてreturnformatを使用することもできます。このパラメーターは、returnformat属性と同じ効果があり、cffunctionタグで指定されたreturnformat属性値をオーバーライドします。

他のデフォルト以外のオプションは、プレーン(文字列に変換できるタイプのテキスト)とjsonです。

于 2010-07-15T20:58:06.123 に答える