JSONの後方互換性: ColdFusion 8 と同じ動作に戻すためのフラグについて

JSONのシリアライゼーションはColdFusion8から導入され、CFCや他のCFデータオブジェクトのシリアル化の際によく使われています。この機能は、ColdFusion 9.0.1の累積ホットフィックス1で、文字列から数値へ変換や数字の double型への変換などでいくつかの問題が修正されました。

しかしながら、JSONのシリアライゼーション処理が変更されたことによって、CF8で構築された古いアプリケーションがそのままでは動かず、CF8から最新のバージョンへのマイグレーションにおいて、プログラム・コードの変更が生じる場合があります。

後方互換性を保ち、以前のJSONのシリアライゼーションと同じ動作にするためのJVMのフラグが用意されています。このフラグを有効にすることで、JSONのシリアライゼーションの最新の変更を回避し、CF8の動作にフォールバックすることができます。

JSONのシリアル化の処理において旧バージョンから最新のCFサーバへのアップグレードで引っかかっている場合は、jvm.config の JVMシステムプロパティに json.numberasdouble の -D オプションを追加して動作をご確認下さい。尚、このオプションはJSONのシリアライゼーションの動作が変更された"ColdFusion9.0.1の累積ホットフィックス1"以降と"ColdFusion10"で有効です。

 

詳細は、開発元が公開しているColdFusion公式ブログをご覧下さい。

http://blogs.coldfusion.com/post.cfm/json-backward-compatibility-flag-to-enable-cf8-behavior

  注意事項

  • 上記のページに記載されている jvm.config は、デフォルトのスタンドアロン構成の場合は下記のフォルダに入っています。
    • CF9.0.1累積ホットフィックス1以降の場合: [cf9_root]/runtime/bin/
    • CF10の場合:[cf10_root]/cfusion/bin
  • テキストエディタやメモ帳等で jvm.configファイルを開き、java.argsに -Djson.numberasdouble=true を指定下さい。
    • ​ColdFusion Administrator にログインして、[サーバーの設定] - [JavaとJVM]の設定画面の『JVM引数』で指定する事も可能です。
  • 値を追加する際は、余分な改行を含めないように注意して下さい。

 

尚、jvm.config、または ColdFusion Administrator の [Java と JVM] で誤った指定を行うと、ColdFusionの起動に失敗する場合もあります。そのため、まずはテスト環境や開発環境で動作をお試し頂くことをお勧めします。

また、作業の際は、念のため jvm.config ファイルのバックアップを取っておくことをお勧めします。

 




記事公開日:2013年03月19日
最終更新日:2013年03月22日

 


x

Sample Modal Window

This is just a sample…

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent suscipit iaculis libero sed tristique. Quisque mollis dolor non tellus placerat vitae sodales lectus porta. Curabitur ut suscipit tellus. Maecenas rhoncus, ante vitae vehicula vestibulum, metus sapien dapibus tellus, et mattis dolor neque vitae nisl. Nullam eleifend ultrices ipsum eget pretium. Curabitur semper metus ut ante adipiscing nec volutpat sem rutrum. Nullam a nisi lacus, non interdum ante. Vivamus ante augue, commodo vel egestas sed, pharetra nec dui. Quisque sed tellus felis. Donec ipsum mauris, sagittis eu accumsan in, aliquam non ipsum.

Vestibulum tempor nunc nec felis scelerisque eget elementum erat dignissim. Ut vel ipsum mollis orci venenatis luctus. Aenean vehicula quam vel quam porttitor ac iaculis elit pulvinar. Proin consequat, ipsum eu venenatis semper, justo turpis posuere tortor, ac placerat metus nisl et lectus. Nulla cursus dui id nunc ullamcorper sed semper nisl lobortis. Aliquam erat volutpat. Phasellus arcu ante, imperdiet in ornare sed, laoreet eu massa.