coldfusion 10 アプリケーションの開発 ·...

1340
アプリケーションの開発 ADOBE ® COLDFUSION 10 ®

Upload: others

Post on 15-Oct-2019

1 views

Category:

Documents


0 download

TRANSCRIPT

  • アプリケーションの開発ADOBE® COLDFUSION 10®

  • 最終更新日 2012/7/12

    ������

    法律上の注意法律上の注意について詳しくは、http://help.adobe.com/ja_JP/legalnotices/index.html を参照してください。

    http://help.adobe.com/ja_JP/legalnotices/index.html

  • iii

    最終更新日 2012/7/12

    コンテンツ

    第 1 章: ColdFusion 10 の新機能JRun から Tomcat への変更 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    セキュリティの機能強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    ColdFusion WebSocket . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    言語の機能強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

    ColdFusion のクロージャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    Java 統合の強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

    ColdFusion ORM 検索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Solr の機能強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    スケジューラーの機能強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    Microsoft Exchange Server 2010 との統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

    クライアントとサーバー間での遅延ロード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    Web サービスの機能強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    ColdFusion での RESTful Web サービス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    メディアプレーヤーの機能拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

    地理位置情報の表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    クライアントサイドのチャート作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    キャッシュ機能の強化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    ColdFusion Administrator を使用したサーバーの更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

    ColdFusion Administrator のセキュアプロファイル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

    第 2 章: はじめに本マニュアルの使用について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    Adobe ColdFusion 10 マニュアルについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

    第 3 章: ColdFusion の概要インターネットアプリケーションと Web アプリケーションサーバーについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

    ColdFusion について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

    J2EE と ColdFusion アーキテクチャについて . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

    第 4 章: CFML プログラミング言語CFML の要素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

    ColdFusion 変数の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    式と # 記号の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

    配列および構造体の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    CFML スクリプト言語による ColdFusion ページの拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

    関数での正規表現の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

  • ivCOLDFUSION 10 アプリケーションの開発コンテンツ

    最終更新日 2012/7/12

    第 5 章: ColdFusion アプリケーションのビルディングブロックColdFusion 要素の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

    ユーザー定義関数の作成と呼び出し . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

    ColdFusion コンポーネントの構築と使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

    カスタム CFML タグの作成と使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206

    CFXAPI カスタムタグの構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

    第 6 章: CFML アプリケーションの開発ColdFusion アプリケーションの設計と最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

    エラー処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275

    永続データとロックの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300

    ColdFusion スレッドの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 326

    アプリケーションの保護 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 337

    グローバル化アプリケーションの開発 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 366

    アプリケーションのデバッグとトラブルシューティング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 379

    ColdFusion デバッガの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393

    第 7 章: データへのアクセスおよび使用データベースおよび SQL の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403

    データのアクセスおよび取得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

    データベースの更新 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 420

    クエリーオブクエリーの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433

    LDAP ディレクトリの管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452

    Solr 検索のサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 475

    第 8 章: ColdFusion ORMColdFusion ORM の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 489

    アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 492

    ORM の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 493

    ORM マッピングの定義 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 498

    オブジェクトの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 529

    クエリーの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535

    トランザクションと同時性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 538

    パフォーマンスの最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 541

    ORM セッション管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 549

    CFC でのイベント処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 551

    データベーススキーマの自動生成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 552

    ORM における複数のデータソースのサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 554

    ColdFusion ORM 検索 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 559

    第 9 章: ColdFusion と HTML 5ColdFusion WebSocket の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 563

    メディアプレーヤーの機能拡張 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 586

  • vCOLDFUSION 10 アプリケーションの開発コンテンツ

    最終更新日 2012/7/12

    地理位置情報の表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592

    クライアントサイドのチャート作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 592

    第 10 章: ColdFusion での Flex と AIR の統合Flash Remoting サービスの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595

    Flash Remoting Update の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 608

    オフライン AIR アプリケーションのサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 618

    ColdFusion サービスのプロキシ ActionScript クラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 645

    LiveCycle Data Services ES アセンブラの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 660

    サーバーサイド ActionScript の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 677

    第 11 章: 情報のリクエストと表示データの取得および形式設定の概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 692

    cfform タグによるダイナミックフォームの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 709

    データの検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 729

    Flash フォームの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 751

    スキン可能 XML フォームの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 768

    Ajax ユーザーインターフェイスコンポーネントおよび機能の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 788

    Ajax データ機能および開発機能の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 839

    第 12 章: Office ファイルとの相互運用性cfdocument の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 869

    cfpresentation の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 870

    cfspreadsheet の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 872

    サポートされている Office 変換形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 873

    SharePoint の統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 874

    第 13 章: ColdFusion ポートレットJBoss Portal Server での ColdFusion ポートレットの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 879

    portlet.cfc で使用する一般的なメソッド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885

    ColdFusion ポートレットコンポーネント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 885

    JSR-286 のサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 888

    WebSphere Portal Server での ColdFusion ポートレットの実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 891

    第 14 章: ドキュメント、チャート、レポートの操作ColdFusion での PDF フォームの操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 892

    PDF ドキュメントの組み立て . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 907

    ColdFusion イメージの作成と操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 934

    チャートとグラフの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 955

    印刷用のレポートとドキュメントの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 979

    Report Builder を使用したレポートの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 986

    スライドプレゼンテーションの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1019

  • viCOLDFUSION 10 アプリケーションの開発コンテンツ

    最終更新日 2012/7/12

    第 15 章: Web 要素および外部オブジェクトの使用XML および WDDX の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1028

    Web サービスの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1061

    ColdFusion Web サービスの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1087

    CFML アプリケーションへの J2EE および Java 要素の統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1109

    Microsoft .NET アセンブリの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1136

    CFML アプリケーションでの COM および CORBA オブジェクトの統合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1158

    第 16 章: 外部リソースの使用電子メールの送受信 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1179

    Microsoft Exchange サーバーとの対話 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1194

    リモートサーバーとの対話 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1221

    サーバー上のファイルの管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1231

    イベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1242

    インスタントメッセージングイベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1265

    SMS イベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1280

    FMS イベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1296

    Data Services Messaging イベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1299

    Data Management イベントゲートウェイの使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1304

    カスタムイベントゲートウェイの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1308

    Eclipse 用の ColdFusion Extension の使用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1322

  • 1

    最終更新日 2012/7/12

    第 1 章: ColdFusion 10 の新機能

    ColdFusion 10 は、Adobe の取り組みによって創造的な発展を遂げました。Web 開発者が堅牢なインターネットアプリケーションを構築するための支援を行います。このリリースは、比類なき HTML5 のビルトインサポートに加えて、強化されたセキュリティ、改良されたスケジューラー、Web サービスサポートを備えています。このリリースのハイライトは、REST サービス、Microsoft Exchange Server 2010 のサポート、および CFML の大幅な機能強化です。

    このリリースの大きなポイントは次のとおりです。

    JRun から Tomcat への変更ColdFusion 10 スタンドアローンインストールでは、JRun の代わりに Tomcat が組み込まれます。

    以前のバージョンの ColdFusion インストーラーでは、マルチサーバーインストールの作成が可能でしたが、ColdFusion 10 インストールでは、スタンドアローンインストールのみが可能です。エンタープライズ版またはデベロッパー版のライセンスを保有している場合は、ColdFusion をスタンドアローンモードでインストールした後に、複数のインスタンスおよびクラスタを作成できます。

    詳しくは、『Adobe ColdFusion インストール』を参照してください。

    セキュリティの機能強化セキュリティの機能強化により、セキュリティの脆弱性、特に XSS および CSRF 攻撃の脅威が減少します。

    また、このリリースには、ColdFusion セッションを効果的に管理するための機能強化も含まれています。

    詳しくは、361 ページの「ColdFusion 10 でのセキュリティの機能強化」を参照してください。

    ColdFusion WebSocket株式、チャート作成、オンラインゲーム、ソーシャルネットワーク、様々な目的のダッシュボード、監視などを目的とするリアルタイムアプリケーションを ColdFusion WebSocket を使用して開発します。

    ColdFusion では、WebSocket プロトコル用のメッセージングレイヤーを提供することで WebSocket を実装しています。これは、CFML と JavaScript を使用して簡単に制御できます。

    詳しくは、563 ページの「ColdFusion WebSocket の使用」を参照してください。

    言語の機能強化• (クエリ用の)for-in 構文のサポート

    • タグ本文でのファイルコンテンツの指定

    • ColdFusion 関数用の呼び出しスタック

    • アプリケーションのメタデータを取得する関数

  • 2COLDFUSION 10 アプリケーションの開発ColdFusion 10 の新機能

    最終更新日 2012/7/12

    • ディスクの空き容量の詳細を取得する関数

    • アプリケーション固有のメモリ内ファイルシステム

    • MIME タイプの検証によるセキュアなファイルのアップロード

    • CFC の暗黙のコンストラクター

    • CFC メソッドのメソッド連結

    • CFC の暗黙の表記法

    • 新しい ArraySlice 関数

    • 新しい merge パラメーターによる arrayAppend のサポート

    • 新しい format パラメーターを LSParseDateTime 関数に追加

    • 新しい runOnce 属性を cfinclude に追加

    • 新しい timeout 属性を cfstoredproc に追加

    • 新しい maxLength 属性を cfparam に追加

    • 新しい dateTimeFormat 関数と lsDateTimeFormat 関数

    • 新しい reEscape 関数

    • replaceList 関数での区切り文字の使用

    • arraySort、listSort および structSort 関数に対する変更

    • 暗黙的な構造体での :(コロン)の区切り文字の使用のサポート

    • インターフェイスシグネチャでの output 属性の無視

    • FUNCTION を ColdFusion データ型に変更

    • クエリのループ処理における動的参照のサポート

    • 新しい invoke 関数

    • cfpop の新しい secure 属性

    • cfloop の新しい group 属性

    • for-in 構文における Java 配列のサポート

    • queryAddRow および queryNew 関数の強化

    • 新しい listRemoveDuplicates 関数

    • XPath 2.0 と XSLT 2.0 シンタックスのサポート

    ColdFusion のクロージャ詳しくは、122 ページの「クロージャの使用」を参照してください。

    Java 統合の強化Java ライブラリをカスタムパスからロードします。

    詳しくは、1132 ページの「ColdFusion 10 での拡張された Java 統合」を参照してください。

  • 3COLDFUSION 10 アプリケーションの開発ColdFusion 10 の新機能

    最終更新日 2012/7/12

    ColdFusion ORM 検索ColdFusion ORM のインデックス作成および検索機能を使用します。

    ColdFusion ORM を使用するアプリケーションを開発するときは、検索機能により全文検索が容易になります。クエリテキストに基づいて、検索条件に一致するすべての永続的エンティティを読み込むことができます。

    詳しくは、559 ページの「ColdFusion ORM 検索」を参照してください。

    Solr の機能強化• データベースのインデックス作成でのデータ読み込みハンドラーの使用

    • 動的なカスタムフィールドに基づいたインデックス作成および検索

    • 個別のコレクションのリロード

    • 検索用の言語の追加

    • 検索システムのセキュリティ保護

    • インデックスを作成したドキュメントの自動コミット

    • 特定のフィールドまたはドキュメント全体の検索結果向上の促進

    詳しくは、481 ページの「ColdFusion 10 での Solr の機能強化」を参照してください。

    スケジューラーの機能強化詳細で拡張可能な、整然とした方法でタスクをスケジュールします。このリリースでは、Quartz スケジューリングサービスがサポートされます。

    詳しくは、399 ページの「スケジューラーの使用」を参照してください。

    Microsoft Exchange Server 2010 との統合Adobe ColdFusion は、Microsoft Exchange Server 2010 SP1 と対話できます。拡張機能は、次の操作での効率性をもたらす Microsoft Exchange Web Services(EWS)のサポートを提供します。

    • 作成、変更、削除などのフォルダー操作。

    • Exchange 組織の会議室および会議室リストの取得。

    • 効率的なスケジュールに役立つユーザー空き時間情報。

    • 会話の詳細の検索、コピー、移動、会話が読まれているかどうかのステータスなどの会話操作。

    詳しくは、1219 ページの「Microsoft Exchange Server 2010 への接続」を参照してください。

  • 4COLDFUSION 10 アプリケーションの開発ColdFusion 10 の新機能

    最終更新日 2012/7/12

    クライアントとサーバー間での遅延ロードColdFusion ORM をバックエンドで使用し、Flex をフロントエンドで使用する、アプリケーションの関連エンティティの必要に応じたロードが、このリリースでは可能です。

    アプリケーションでは、メインエンティティを取得し、関連エンティティは取得しないようにすることができます。クライアントアプリケーションが関連エンティティにアクセスを試みたときにのみ、エンティティが読み込まれます。

    詳しくは、613 ページの「クライアントとサーバー間での遅延ロード」を参照してください。

    Web サービスの機能強化ColdFusion 10 には、Axis 2 Web サービスフレームワークが統合されています。これにより、Web サービスでは WSDL 2 仕様、SOAP 1.2 プロトコル、およびドキュメントリテラルラップスタイルを使用できます。

    また、機能拡張により、ColdFusion 9 での Web サービスの使用時に発生する可能性があった相互運用性の問題の多くが解決されています。

    詳しくは、1090 ページの「ColdFusion 10 での Web サービスの機能強化」を参照してください。

    ColdFusion での RESTful Web サービスColdFusion Zeus では、REST(Representational State Transfer)サービスを作成して公開できます。クライアントは、HTTP/HTTPS リクエストを使用してこのサービスを使用できます。

    詳しくは、1093 ページの「ColdFusion での RESTful Web サービス」を参照してください。

    メディアプレーヤーの機能拡張このリリースでの機能拡張は次をサポートします。

    • HTML 5 ビデオ用の再生機能

    • Flash Player がインストールされていない場合の HTML 5 ビデオプレーヤーへのフォールバック

    • ブラウザーに依存しないビデオコントロール

    • Flash ビデオの動的ストリーミング

    • メディアプレーヤー用の高度なスキニング

    • Flash ビデオの再生リスト

    • Open Source Media Framework(OSMF)で構築されたプラグインを使用するメディアプレーヤーの拡張。例として、

    • YouTube サーバーでのビデオの再生

    • リニアモードおよび非リニアモードでのビデオ内での広告の表示による、ステージビデオサポートの使用

    • ビデオへのタイトルの追加

    詳しくは、586 ページの「メディアプレーヤーの機能拡張」を参照してください。

  • 5COLDFUSION 10 アプリケーションの開発ColdFusion 10 の新機能

    最終更新日 2012/7/12

    地理位置情報の表示cfmap で showUser 属性が指定されている場合、地図上でのユーザーの位置を表示します。この機能は、HTML 5 準拠ブラウザーでのみ動作します。

    詳しくは、592 ページの「地理位置情報の表示」を参照してください。

    クライアントサイドのチャート作成ColdFusion Zeus はクライアントサイドのチャート作成をサポートします。これは、既存のサーバーサイドのチャート作成機能(従来どおり提供されます)に対する追加です。クライアントサイドのチャート作成は以下をサポートします。

    • 動的および対話形式のチャート作成:チャートの変更、スタイルの追加、新しい系列またはプロットの追加を行います。

    • 適切なフォールバック機能を備えた主要なチャート形式:HTML 5、Flash、SVG、または VML のチャートを使用します。

    • ブラウザーが HTML 5 のチャート作成関連機能をサポートしていない場合、チャートは Flash で表示されます。同様に、

    • Flash がサポートされていない場合、チャートは HTML で表示されます。

    • サーバーサイドのチャート作成と同様の機能:サーバーサイドのチャート作成機能のほとんどを、クライアントサイドのチャート作成で使用できます。

    • 従来のチャートと新しいチャート:現在のチャートタイプに加えて、新しいチャートセットを提供します。

    • サーバーへのトリップが最小:すべてのユーザー対話について、サーバーレベルでのチャート生成と比較した場合。

    詳しくは、592 ページの「クライアントサイドのチャート作成」を参照してください。

    キャッシュ機能の強化• アプリケーション別のキャッシュ処理

    • Ehcache の使用によるクエリのキャッシュ処理の強化

    詳しくは、254 ページの「ColdFusion 10 でのキャッシュ機能の強化」を参照してください。

    ColdFusion Administrator を使用したサーバーの更新ColdFusion Administrator(サーバー更新/更新)を使用して、製品アップデートがあるかどうかを確認します。 アップデートには、ColdFusion Zeus のホットフィックスおよびセキュリティホットフィックスが含まれる場合があります。

    詳しくは、『Adobe ColdFusion 設定と管理』を参照してください。

  • 6COLDFUSION 10 アプリケーションの開発ColdFusion 10 の新機能

    最終更新日 2012/7/12

    ColdFusion Administrator のセキュアプロファイルColdFusion では、ColdFusion Administrator で選択した設定を有効または無効にして、ColdFusion サーバーのセキュリティを強化することができます。ColdFusion のインストール時に、セキュアプロファイル画面で入力を要求されたときにオプションを選択して、セキュアプロファイルを有効にすることができます。さらに、ColdFusion Administrator へのアクセスを許可する IP アドレスのカンマ区切りリストを指定することもできます。詳しくは、Enabling Secure Profile for ColdFusion Administratorを参照してください。

  • 7

    最終更新日 2012/7/12

    第 2 章: はじめに

    『Adobe® ColdFusion® 9 アプリケーションの開発』ガイドでは、Adobe ColdFusion を使用してインターネットアプリケーションを開発するためのツールについて説明します。本マニュアルは、ColdFusion を学習している Web アプリケーションプログラマや、ColdFusion のプログラミング知識を拡充したいプログラマを対象としています。本マニュアルを読めば、ColdFusion に用意されているツールを使用してさまざまな種類の複雑な Web アプリケーションを開発するための基礎知識を習得できます。

    本マニュアルの使用について 本マニュアルには、CFML に関する基本的な情報だけでなく、詳細な情報も記載されています。ColdFusion の基本機能を使用したことがある方や、Adobe ColdFusion Administrator の「ファーストステップ」をご覧になった方には、より使いやすい構成になっています。本マニュアルを読むときは、CFML 言語の要素に関する詳細な情報が記載されている『CFML リファレンス』を参照することをお勧めします。

    Adobe ColdFusion 10 マニュアルについてColdFusion のマニュアルは、あらゆるユーザーを総合的にサポートできるように作成されています。

    マニュアルセットColdFusion のマニュアルセットには、次のマニュアルが含まれています。

    オンラインマニュアルの参照ColdFusion のすべてのマニュアルは、HTML 形式および Adobe Acrobat PDF (Portable Document Format) 形式でオンラインから入手できます。オンラインマニュアルを表示するには、ColdFusion ヘルプ&サポートページ(www.adobe.com/go/learn_cfu_support_jp)にアクセスしてください。これらのオンラインマニュアルでは、新しいコメントを追加したり、既存のコメントを参照することもできます。

    タイトル 説明

    Adobe® ColdFusion® 10 インストール

    Windows、Macintosh、Solaris、Linux、および AIX 環境でのシステムインストールおよび基本設定について説明します。

    Adobe® ColdFusion® 10 設定と管理

    ColdFusion の管理作業 (サーバー設定の管理、データソースの設定、セキュリティの管理、ColdFusion アプリケーションのデプロイ、キャッシュ、CFX タグのセットアップ、ColdFusion サーバーモニタを使用したサーバーアクティビティの監視、Web サーバーの設定など ) について説明します。

    Adobe® ColdFusion® 10 アプリケーションの開発

    ダイナミック Web アプリケーションの開発方法について説明します。このガイドには、CFML プログラミング言語と ColdFusion の機能 (ColdFusion Web サービス、ColdFusion ポートレット、ColdFusion ORM、AJAX サポート、Flex および AIR 統合など ) の使用方法と、他社の製品およびテクノロジー (Microsoft Office、OpenOffice、SharePoint など ) との統合に関する詳細情報が含まれています。

    Adobe® ColdFusion® 10 CFML リファレンス

    すべての ColdFusion タグ、関数、変数に関する説明、シンタックス、使用方法、コード例が含まれています。

    http://www.adobe.com/go/learn_cfu_support_jp

  • 8

    最終更新日 2012/7/12

    第 3 章: ColdFusion の概要

    Adobe ColdFusion を使用すれば、ダイナミックなインターネットアプリケーションを作成できます。

    インターネットアプリケーションと Web アプリケーションサーバーについてColdFusion は、Web アプリケーションサーバーで実行するインターネットアプリケーションを開発するためのツールです。

    Web ページとインターネットアプリケーションについてインターネットは、スタティックな HTML ページの集まりから、アプリケーションをデプロイするためのプラットフォームへと発展してきました。スタティックな Web ページの集合であったインターネットは、まず、ダイナミックなインタラクティブコンテンツへと進化しました。一定のコンテンツしか表示できないページで商品やサービスを宣伝するだけであった企業は、ダイナミックページを導入することで、e コマースから業務プロセスの管理まで、広範なビジネス活動をインターネットで展開できるようになりました。たとえば書店であれば、スタティックな HTML ページを使用することで、店舗の地図や提供しているサービス (特別注文など ) を掲示したり、サイン会などの今後のイベントを告知したりすることができますが、ダイナミックな Web サイトを構築すれば、顧客からオンラインで注文を受けたり、本の感想を投稿できるページを用意したり、顧客の好みに応じて購入アドバイスを表示したりすることができます。

    さらに最近では、さまざまなアプリケーションを実装するためのインフラストラクチャとしてインターネットが活用されています。XML、Web サービス、J2EE (Java 2 Platform, Enterprise Edition)、Microsoft .NET などのテクノロジーが登場したことで、ビジネス活動のさまざまな側面がインターネットに統合できるようになりました。インターネットを使用すれば、顧客サービス、受注、受注処理、請求などの広範なビジネス活動を統合することができます。

    Adobe ColdFusion は、ダイナミックな Web サイトやインターネットアプリケーションをすばやく簡単に構築できるアプリケーション開発環境です。ColdFusion を使用すれば、複雑なテクノロジーに精通していなくても高度な Web サイトやインターネットアプリケーションが開発でき、スキルの高い開発者は最新のインターネットテクノロジーも活用できます。

    Web アプリケーションサーバーについて通常、Web ブラウザがリクエストを行うと、Microsoft IIS (Internet Information Server) や Apache Web サーバーなどの Web サーバーがそれを処理して、リクエストされた情報をブラウザに返します。Web サーバーが返す情報としては、HTML ファイルや FLA ファイルなどがあります。

    Web サーバーの役割は、リクエストが届くのを待ち受けてそのリクエストにできるだけ早く応答することなので、Web サーバーが実行できることは限られています。たとえば、Web サーバーでは次のタスクは行えません。

    • データベース、他のリソース、または他のアプリケーションの操作

    • ユーザーの好みやリクエストに基づいたカスタム情報の提供

    • ユーザー入力の検証

    Web サーバーが行うのは、基本的に、情報を見つけて Web ブラウザに返すことだけです。

    Web サーバーの機能を拡張するには、Web アプリケーションサーバーを使用します。Web アプリケーションサーバーは、前述のようなタスクを行えるように Web サーバーの機能を拡張するためのプログラムです。

  • 9COLDFUSION 10 アプリケーションの開発ColdFusion の概要

    最終更新日 2012/7/12

    Web サーバーと Web アプリケーションサーバーの連携Web サーバーと Web アプリケーションサーバーが連携してページリクエストを処理する過程を、次の手順に示します。

    1 ユーザーがブラウザに URL を入力してページをリクエストすると、Web サーバーがそのリクエストを受信します。

    2 Web サーバーはファイル名の拡張子を調べて、そのページを Web アプリケーションサーバーで処理するかどうかを判断します。次のいずれかの処理が行われます。

    • シンプルな Web ページ (拡張子が HTM または HTML のページなど ) をユーザーがリクエストした場合は、Web サーバーがそのリクエストを処理し、ブラウザにファイルを送信します。

    • Web アプリケーションサーバーで処理する必要があるページ (ColdFusion リクエストであれば拡張子が CFM、CFML、または CFC のページ ) をユーザーがリクエストした場合は、Web サーバーから Web アプリケーションサーバーにそのリクエストが渡されます。Web アプリケーションサーバーはページを処理して、その結果を Web サーバーに送信します。Web サーバーは受信した結果をブラウザに返します。このプロセスを次の図に示します。

    Web アプリケーションサーバーを使用すれば、プログラムの命令を実行して、Web ブラウザで処理可能な出力を生成できるので、データを活用したインタラクティブな Web サイトを実現できます。たとえば、次のことが行えます。

    • 他のデータベースアプリケーションにクエリーを発行してデータを取得する。

    • フォーム要素にデータをダイナミックに入力する。

    • Flash データをダイナミックに生成する。

    • アプリケーションのセキュリティを提供する。

    • HTTP、FTP、LDAP、POP、SMTP などの標準プロトコルを使用して他のシステムを統合する。

    • ショッピングカートや e コマースの Web サイトを作成する。

    • ユーザーがフォームを送信したら電子メールメッセージを返す。

    • キーワード検索の結果を返す。

    ColdFusion についてAdobe ColdFusion は、ダイナミックなインターネットアプリケーションを作成するためのスクリプト環境を備えたサーバーです。CFML (ColdFusion Markup Language) は、習得しやすいタグベースのスクリプト言語で、エンタープライズデータへのアクセス機能や、強力なビルトイン検索機能、グラフ作成機能などを備えています。ColdFusion を使用すれば、ダイナミックな Web サイト、コンテンツパブリッシュシステム、セルフサービス型アプリケーション、コマースサイトなどを簡単に構築してデプロイできます。

    2. Web サーバーでページリクエストを受け取ります。.

    5. Web サーバーはブラウザに出力内容を送信します。

    3. Web サーバーはアプリケーションサーバーにページを処理するように指示します。

    4. アプリケーションサーバーはページを処理し、出力を生成します。

    W eb ServerA p p licatio n

    Server

    1. Web ブラウザからweb ページをリクエストします。.

    In te rn e t

  • 10COLDFUSION 10 アプリケーションの開発ColdFusion の概要

    最終更新日 2012/7/12

    ColdFusion ページは、Web アプリケーションの作成に使用するプレーンテキストファイルです。ColdFusion アプリケーションを作成するには、すべてのコードを自分で入力してもかまいませんし、一部のエディタで提供されているウィザードを使用して大半のコードを生成することもできます。

    ColdFusion ページの保存ColdFusion サーバーで処理するページは、ColdFusion がインストールされているコンピュータに保存する必要があります。ローカルサーバー (ColdFusion が稼動しているコンピュータ ) 上でページを作成している場合は、そのコンピュータにページを保存します。リモートサーバーを使用している場合は、そのサーバーにページを保存します。

    J2EE 設定を使用している場合は、通常、ColdFusion の Web アプリケーションのルートディレクトリの下に ColdFusion ページを保存します。たとえば、JRun の J2EE 設定でデフォルトのディレクトリ構造を使用している場合は、/servers/cfusion/cfusion-ear/cfusion-war の下にページを保存します。

    ColdFusion ページのテスト作成したコードが期待どおりに動作するか確認するには、http://localhost/test/mypage.cfm などの該当する URL にアクセスして、ColdFusion ページをブラウザで表示します。ビルトイン Web サーバーを使用している場合は、http://localhost:8500/test/cfpage.cfm などのように、使用するポートを URL で指定します。localhost は、ページをローカルで表示する場合にのみ有効です。

    注意: Vista では、::1 というアドレスが localhost に相当します。ColdFusion の GetLocalHostIP 関数を使用すれば localhost の IP アドレスを取得できます。

    リモートサイトの URL にアクセスする場合は、http:///test/mypage.cfm のように、ColdFusion がインストールされているサーバーのサーバー名または IP アドレスを指定します。J2EE 設定の ColdFusion を使用している場合は、http:////mypage.cfm のように、必要に応じてコンテキストルートも指定します。たとえば、EAR ファイルをデプロイし、cfconroot というデフォルトのコンテキストルートを使用している場合は、http://localhost/cfconroot/test/mypage.cfm と指定します。

    ColdFusion の要素ColdFusion は、次のコア要素から構成されます。

    • ColdFusion スクリプト環境• CFML

    • ColdFusion Administrator

    ColdFusion スクリプト環境ColdFusion スクリプト環境は、インターネットアプリケーションを開発するための効率的なモデルを提供します。この ColdFusion スクリプト環境の中核をなしているのが、CFML (ColdFusion Markup Language) です。CFML はタグベースのプログラミング言語で、Web プログラミングに必要な低レベル処理の多くが高レベルのタグや関数にカプセル化されています。

    CFMLCFML (ColdFusion Markup Language) は HTML に似たタグベースの言語で、固有のタグや関数が用意されています。CFML を使用すれば、データベースコマンド、条件演算子、高度な書式制御関数などを使用して標準の HTML ファイルを拡張し、保守を行いやすい Web アプリケーションを迅速に作成できます。また、HTML の拡張以外にも CFML を活用できます。たとえば、Flash 要素と CFML だけで構成される Flash 出力を作成したり、他のアプリケーションで利用可能な Web サービスを作成したりすることもできます。

    詳細については、13 ページの「CFML の要素」を参照してください。

  • 11COLDFUSION 10 アプリケーションの開発ColdFusion の概要

    最終更新日 2012/7/12

    CFML タグCFML のタグは HTML のタグに似ています。開始タグと (多くの場合 ) 終了タグがあり、各タグは山括弧で囲まれています。終了タグの前にはスラッシュ記号 (/) があり、すべてのタグの名前は cf で始まります。たとえば、次のようになります。

    tag body text and CFML

    CFML は、一種のアブストラクションレイヤーです。インターネットアプリケーションのプログラミングで必要な多くの低レベル処理が隠蔽されているので、生産性の向上が図れます。また、CFML は強力で柔軟性が高いので、ファイル、データベース、レガシーシステム、メールサーバー、FTP サーバー、オブジェクト、コンポーネントなどを統合するアプリケーションを簡単に構築できます。

    CFML タグを使用すれば、さまざまな処理が行えます。条件処理やループ処理などのプログラミング構文を使用したり、グラフ作成や全文検索などのサービスを利用することもできます。また、FTP、SMTP/POP、HTTP などのプロトコルにアクセスすることもできます。次の表に、代表的な ColdFusion タグの例を示します。

    CFML タグの詳細については、『CFML リファレンス』を参照してください。

    CFML 関数と CFScriptCFML では、文字列操作、データ管理、システム機能などのさまざまな処理がビルトイン関数として用意されています。また、CFScript というビルトインスクリプト言語も用意されています。CFScript を使用すれば、JavaScript などの一般的なプログラミング言語に近い形でコードを記述できます。

    CFML の拡張CFML では、カスタムタグやユーザー定義関数 (UDF) を作成したり、COM、C++、Java のコンポーネント (JSP タグライブラリなど ) を統合したりすることで、CFML を拡張できます。また、ColdFusion コンポーネント (CFC) を作成することで、関連する関数やプロパティをカプセル化してそのインターフェイスを提供できます。

    これらの機能を使用すれば、構築するアプリケーションや Web サイトに適した再利用可能な機能を簡単に作成できます。

    CFML 開発ツールAdobe® Dreamweaver® CS3 を使用すれば、ColdFusion アプリケーションを効率的に開発できます。Dreamweaver には、CFML のデバッグツールなど、ColdFusion の開発を効率化しサポートするさまざまな機能が用意されています。CFML は HTML に似たテキスト形式で記述されており、ColdFusion ページで HTML を使用することも多いので、HTML エディタやメモ帳などのテキストエディタを使用して ColdFusion アプリケーションを作成することもできます。

    ColdFusion 9 にはラインデバッガが用意されており、Eclipse™ または Adobe Flex™ Builder™ で ColdFusion アプリケーションをデバッグすることができます。

    タグ 用途

    cfquery データベースへの接続を確立し (確立されていない場合 )、クエリーを実行して結果を ColdFusion 環境に返します。

    cfoutput ColdFusion の関数、変数、式などの処理結果を使用して出力を表示します。

    cfset ColdFusion 変数に値を設定します。

    cfmail アプリケーション変数、クエリー結果、またはサーバーファイルを使用して、アプリケーションから SMTP メールメッセージを送信します (メールを受信するには cfpop という別のタグを使用します )。

    cfchart アプリケーションデータやクエリー結果を、Flash、JPG、または PNG 形式の棒グラフや円グラフなどに変換します。

    cfobject COM (Component Object Model) コンポーネント、Enterprise JavaBeans などの Java オブジェクト、一般的な CORBA (Object Request Broker Architecture) オブジェクトなどの、他のプログラミング言語で作成されたオブジェクトを呼び出します。

  • 12COLDFUSION 10 アプリケーションの開発ColdFusion の概要

    最終更新日 2012/7/12

    ColdFusion AdministratorColdFusion Administrator では、ColdFusion アプリケーションサーバーの設定や管理が行えます。ColdFusion Administrator は、セキュリティ保護された Web ベースのアプリケーションで、インターネットに接続しているコンピュータから Web ブラウザでアクセスできます。これには、ColdFusion サーバーのステータスを確認できるサーバーモニタが含まれています。

    ColdFusion Administrator の詳細については、『ColdFusion 設定と管理』を参照してください。

    J2EE と ColdFusion アーキテクチャについてインターネットソフトウェアの市場が成熟するにつれて、ColdFusion アプリケーションなどの分散インターネットアプリケーションに必要なインフラストラクチャサービスが標準化されてきました。今日最も広く採用されている標準は J2EE (Java 2 Platform, Enterprise Edition) 仕様です。J2EE は、複数のオペレーティングシステムでデータベース、プロトコル、およびオペレーティングシステム機能を利用するための、共通インフラストラクチャサービスのセットを提供します。

    ColdFusion と J2EE プラットフォームについてColdFusion は Java テクノロジープラットフォーム上に実装されています。データベース接続、ネーミングサービスやディレクトリサービス、その他のランタイムサービスなどの基本サービスの多くは、J2EE アプリケーションサーバーを使用して提供されています。ColdFusion は、組み込みの J2EE サーバーを使用するように設定する (サーバー設定にする ) ことも、独立した J2EE アプリケーションサーバーに J2EE アプリケーションとしてデプロイする (マルチサーバー設定または J2EE 設定にする ) ことも可能です。ColdFusion エンタープライズ版には、JRun J2EE アプリケーションサーバーの完全機能版が含まれています。または、IBM WebSphere や BEA WebLogic などのサードパーティの J2EE サーバーにデプロイすることもできます。

    ColdFusion 設定の詳細については、『ColdFusion インストール』を参照してください。

    ColdFusion のスクリプト環境は J2EE プラットフォーム上に実装されているので、J2EE プラットフォームの強力な機能が活用できるとともに、使いやすいスクリプト環境やビルトインサービスも利用できます。ColdFusion は J2EE プラットフォーム上に構築されているので、J2EE や Java の機能を ColdFusion アプリケーションに簡単に統合できます。たとえば、ColdFusion ページでは次のことが行えます。

    • JSP (Java Server Pages) や Java サーブレットとセッションデータを共有する。

    • カスタムの JSP タグライブラリをインポートして、ColdFusion のカスタムタグと同様に使用する。

    • J2EE Java API、JavaBeans、Enterprise JavaBeans などの Java オブジェクトを統合する。

    ColdFusion での J2EE 機能の使用方法の詳細については、1109 ページの「CFML アプリケーションへの J2EE および Java 要素の統合」を参照してください。

  • 13

    最終更新日 2012/7/12

    第 4 章: CFML プログラミング言語

    CFML の要素CFML には、タグ、関数、定数、変数、式、CFScript などの基本要素が用意されています。これらの要素を使用すれば、インタラクティブな Web アプリケーションを簡単に開発できます。

    CFML の基礎CFML はダイナミックアプリケーションを開発するためのツールであり、プログラミング言語のさまざまな特徴を利用できますそれらの特徴には、関数、式、変数、定数、フロー制御構造 (if-then やループなど ) が含まれます。また、CFML には "言語内の言語 " である CFScript が用意されており、JavaScript に似たシンタックスでさまざまな処理を記述できます。

    これらの要素や、コメント、データ型、エスケープ文字、予約語などの基本的な CFML エンティティを使用すれば、複雑なアプリケーションを作成できます。

    コメントColdFusion のコメントと HTML のコメントはよく似ています。ただし、ハイフンを 2 つではなく 3 つ挿入する点が異なります。次に例を示します。

    ColdFusion サーバーは、Web サーバーにページを返す前に、そのページに含まれている ColdFusion コメントをすべて削除します。したがって、ブラウザで受信されるページにコメントは含まれていません。ユーザーがページのソースを表示してもコメントは表示されません。

    CFML コメントは、タグ本文以外にも、開始タグ、関数呼び出し、# 記号で囲まれた変数テキストの中に挿入できます。ColdFusion では、コメント内のテキストは無視されます。 )#

    この方法は、式の一部や、オプションの属性や引数などを一時的にコメントアウトしたい場合に便利です。

    次の例のように、コメントをネストすることもできます。

    #errormessage1#

    --->

    このようにネストは、アプリケーションのテスト時に、特定のコードセクションを一時的に無効にしたい場合に便利です。

    コメントの中にコメントを埋め込むことは可能ですが、このテクニックを使用する際は注意が必要です。

    注意: コメントは、Variable") のように文字列の中に挿入することもできません。

  • 14COLDFUSION 10 アプリケーションの開発CFML プログラミング言語

    最終更新日 2012/7/12

    タグColdFusion のタグは、情報を処理するように ColdFusion サーバーに指示するためのマークです。ColdFusion サーバーで処理されるのは、タグの本文のみです。ColdFusion の外にあるテキストはそのまま Web サーバーに返されます。ColdFusion ではさまざまなビルトインタグが使用でき、カスタムタグも作成できます。

    タグのシンタックスColdFusion のタグは、HTML のタグと同じ形式で記述します。タグは山括弧 (< と >) で囲まれており、0 個以上の属性を指定できます。多くの ColdFusion タグには本文があります。つまり、開始タグと終了タグの間に、処理するテキストを記述します。次に例を示します。

    Hello #YourName#!

    cfset や cfhttp のように、本文がないタグもあります。次の例のように、必要な情報はすべて開始文字 () の間に挿入します。

    注意: cfset タグは他のタグと異なり、本文も引数も持ちません。このタグは、変数に値を代入するステートメントを囲みます。cfset タグでは、結果変数に値を代入せずに関数を呼び出すこともできます。

    本文を持つことができるタグでも、必要な情報を属性ですべて指定できる場合は、必ずしも本文を記述する必要はありません。タグに本文がない場合は、終了タグを省略して、開始タグの終了文字 (>) の前にスラッシュを置くこともできます。たとえば、次のようになります。

    ほとんどの場合は、この例のように attributeName=" attributeValue" の形式を使用して、タグの中で属性を直接指定します。または、すべての属性を 1 つの構造体に格納して、その構造体を単一の attributeCollection 属性で指定することもできます。たとえば、次のように記述します。

    cfmodule を除くすべてのビルトイン ColdFusion タグでは、attributeCollection 属性を指定した場合はその他の属性は指定できません。この方法は、タグの引数の個数や値が処理結果によって異なる場合に便利です。この場合の例を次に示します。

  • 15COLDFUSION 10 アプリケーションの開発CFML プログラミング言語

    最終更新日 2012/7/12

    #cfhttp.fileContent#

    注意: attributeCollection 属性は、cfmodule タグおよびカスタムタグで使用する場合と、その他のタグで使用する場合とでは、その性質が異なります。cfmodule タグおよびカスタムタグでは、attributeCollection 属性に加えて、カスタムタグ属性を明示的に指定することができます。また、cfmodule タグでは、attributeCollection 属性に name および template 属性を含めることはできません。これらの属性は、cfmodule タグで直接指定します。

    attributeCollection 属性は、次を除くすべてのタグで使用できます。

    ビルトインタグビルトインタグは、ColdFusion の中核をなす機能です。これらのタグを使用すれば、次のようなさまざまな処理が行えます。

    • 変数の操作

    • インタラクティブフォームの作成

    • データベースへのアクセスおよび操作

    • データの表示

    • ColdFusion ページでの実行フローの制御

    • エラー処理

    • ColdFusion ページの処理

    cfargument cfelseif cflogout cfset

    cfbreak cffunction cfloop cfsilent

    cfcase cfif cfparam cfswitch

    cfcatch cfimport cfprocessingdirective cftry

    cfcomponent cfinterface cfproperty

    cfdefaultcase cflogin cfrethrow

    cfelse cfloginuser cfreturn

  • 16COLDFUSION 10 アプリケーションの開発CFML プログラミング言語

    最終更新日 2012/7/12

    • CFML アプリケーションフレームワークの管理

    • ファイルおよびディレクトリの操作

    • COM、Java、CORBA オブジェクト、実行可能プログラムなどの外部ツールおよびオブジェクトの使用

    • mail、http、ftp、pop などのプロトコルの使用

    各タグの詳細については、『CFML リファレンス』を参照してください。

    カスタムタグColdFusion ではカスタムタグを作成できます。作成できるカスタムタグには、次の 2 つのタイプがあります。

    • ColdFusion ページである CFML カスタムタグ

    • Java、C++ などのプログラミング言語で記述する CFX タグ

    カスタムタグを使用すれば、頻繁に利用するビジネスロジックや表示コードをカプセル化できます。頻繁に利用するコードをカスタムタグとして用意しておけば、さまざまな場所から呼び出せるようになります。また、カスタムタグを使用すると、複雑なロジックを単純な 1 つのインターフェイスにまとめることができます。この方法を使用すれば、開発したコードを簡単に配布できます。タグのロジックにアクセスできないようにタグを暗号化することもできます。

    Adobe ColdFusion コンポーネントの情報交換サイト (www.adobe.com/go/learn_cfu_cfdevcenter_jp) では、無償または有償で提供されている、さまざまなカスタムタグにアクセスできます。たとえば、クライアントのブラウザで Cookie や JavaScript が有効であるかどうかを確認するカスタムタグや、あるリストボックスから別のリストボックスに項目を移動するカスタムタグなどが用意されています。これらのタグの多くは、ソースコードとともに無償で提供されています。

    CFML カスタムタグCFML でカスタムタグを記述する場合は、ビルトインタグや他のカスタムタグを含む、ColdFusion 言語のすべての機能を利用できます。CFML カスタムタグには本文と終了タグを含めることができます。CFML カスタムタグは CFML で記述するので、Java などのプログラミング言語の知識は必要ありません。CFML カスタムタグは、ユーザー定義関数と比べて多くの機能を実現できますが、効率は劣ります。

    CFML カスタムタグの詳細については、206 ページの「カスタム CFML タグの作成と使用」を参照してください。CFML カスタムタグ、ユーザー定義関数、CFX タグなどの ColdFusion コードの再利用方法の詳細および比較については、143 ページの「ColdFusion 要素の作成」を参照してください。

    CFX タグCFX タグは、Java、C++ などのプログラミング言語で記述する ColdFusion カスタムタグです。CFX タグでは、ランタイム環境へのアクセスなど、使用する言語に用意されているツールやリソースをすべて利用できます。また、CFX タグはコンパイルされているので、一般に CFML カスタムタグよりも実行速度が速くなります。クロスプラットフォームに対応している CFX タグもありますが、COM オブジェクトや Windows API を利用しているタグなど、多くの CFX タグはプラットフォーム固有です。

    CFX タグの詳細については、221 ページの「CFXAPI カスタムタグの構築」を参照してください。

    関数および演算子としてのタグColdFusion には、CFML タグに対応するさまざまな関数や演算子言語要素が用意されています。これらの要素を既存の CFScript 言語に組み合わせると、完全に CFScript 内で多数の関数や CFC を定義できます。

    新しい関数と演算子は、次のタグカテゴリに分類されます。

    • 本文を持たないタグ (cfexit や cfinclude など )

    • 本文を持つ言語タグ (cflock や cftransaction など )

    • 本文を持つサービスタグ (cfmail や cfquery など )

    http://www.adobe.com/go/learn_cfu_cfdevcenter_jp

  • 17COLDFUSION 10 アプリケーションの開発CFML プログラミング言語

    最終更新日 2012/7/12

    • コンポーネントや関数を定義して使用するためのタグ (cfcomponent、cfinterface、cfimport、cffunction、cfproperty、cfargument)。詳細については、113 ページの「CFScript でのコンポーネントと関数の定義」を参照してください。

    本文を持たないタグ基本的な ColdFusion タグの一部に対応する CFScript 演算子が追加されました。これらの演算子では、標準のタグ属性の一部を指定できますが、カスタム属性は使用できません。これらの演算子は値を返しません。

    CFML タグとそれに対応する CFScript シンタックスを次のリストに示します。

    • cfabort: abort ["message"];

    • cfexit: exit ["methodName"];

    • cfinclude: include "template";

    • cfparam: param [type] name [=defaultValue];

    param 属性で name=value のペアをいくつでも指定できるようになりました。また、param では、 のすべての属性を名前 / 値のペアとして指定できます。

    次に例を示します。

    param name="paramname" default="value" min="minvalue" max="maxvalue" pattern="pattern"

    • cfrethrow: rethrow;

    • cfthrow: throw "message";

    ステートメントパラメータの詳細については、『CFML リファレンス』で対応するタグ属性の説明を参照してください。

    本文を持つ言語レベルのタグColdFusion には、次に示す言語 (コンパイラ ) レベルのタグ (本文を持つタグ ) の機能を提供する CFScript 要素が含まれています。これらのタグは、本文内のコードの実行を管理します。

    • cflock: lock

    • cfthread: thread

    • cftransaction: transaction

    また、スレッドとトランザクションのサポートには、threadJoin や transactionCommit などの関数も含まれます。これらの関数を使用すると、タグと関数のどちらを使用して定義されているかにかかわらず、あらゆるスレッドやトランザクションを管理できます。

    lock、thread、および transaction 操作のシンタックスを次に示します。operationName attributeName1=value1 attributName2=value2...

    {body contents }

    cflocklock 操作には、特別な特徴や制限はありません。cflock タグの属性はすべて、有効な操作パラメータとして使用できます。次のコードでは、lock 操作を使用しています。lock scope = "request" timeout = "30" type = "Exclusive" {

    request.number = 1;

    writeoutput("E-Turtleneck has now sold "& request.number &"

    turtlenecks!");

    }

  • 18COLDFUSION 10 アプリケーションの開発CFML プログラミング言語

    最終更新日 2012/7/12

    cftransactiontransaction 操作を使用するには、begin アクションパラメータを指定します。transaction の一般的な形式を次に示します。

    TRANSACTION action="begin" [isolation="isolationValue"] {

    transaction code

    }

    transaction ブロック内では、トランザクションを管理するために次のメソッドを呼び出します。

    • transactionCommit()

    • transactionRollback([savepoint])

    • transactionSetSavepoint([savepoint])

    savepoint パラメータは、セーブポイントを識別する文字列です。

    注意: これらのメソッドは、cftransaction タグの本文でも使用できます。

    transaction 操作は、ネストすることもできます。ネストされたトランザクションの詳細については、『CFML リファレンス』の cftransactionを参照してください。

    ネストされた transaction 操作の使用例を次に示します。

    qry = new Query();

    qry.setDatasource("test");

    qry.setSQL("delete from art where artid=62");

    qry.execute();

    TRANSACTION action="begin"

    {writeoutput("Transaction in cfscript test");

    TRANSACTION action="begin" {

    qry.setSQL("insert into art(artid, artistid, artname, description, issold, price)

    values ( 62, 1, 'art12', 'something', 1, 100)");

    qry.execute();}

    transactionSetSavepoint("sp01");

    qry.setSQL("update art set artname='art45' where artid=62");

    qry.execute();

    transactionSetSavepoint("sp02");

    qry.setSQL("update art set artname='art56' where artid=62");

    qry.execute();

    transactionrollback("sp02");

    transactioncommit();

    }

    cfthreadthread 操作を使用するには、run アクションパラメータを指定します。thread は、操作本文のコードを実行します。thread ブロックの一般的な形式を次に示します。THREAD name="text" [action="run"] [priority="priorityValue"

    application-specific attributes] {

    thread code

    }

  • 19COLDFUSION 10 アプリケーションの開発CFML プログラミング言語

    最終更新日 2012/7/12

    thread 操作本文のコードは、単一の ColdFusion スレッドで実行されます。本文の外側にあるコードは、このスレッドの一部としては実行されません。スレッドを管理するには、次のメソッドを使用します。

    • threadTerminate(threadName)

    この関数を使用すると、threadName パラメータで指定されたスレッドが終了します。この関数の動作は、cfthread action="terminate" と同じです。

    • threadJoin([[threadName], timeout])

    この関数を使用すると、指定されたスレッドに現在のスレッドが結合されます。現在のスレッドは、指定されたスレッドが完了するか、タイムアウト期間が経過するまで (いずれかの条件が先に満たされるまで ) 待機します。thread 関数ブロック内における現在のスレッドはそのブロックスレッドに属し、thread 関数ブロック外における現在のスレッドはページスレッドになります。threadName パラメータでは、ページスレッドに結合するスレッドをカンマで区切って指定します。この属性を省略すると、現在のスレッドは、すべての ColdFusion スレッドの実行が完了するまで待機します。timeout パラメータでは、指定したスレッドの処理が完了するまで呼び出し元のスレッドを待機させる最大時間をミリ秒単位で指定します。未完了のスレッドがある場合でも、タイムアウト期間が経過すると、現在のスレッドの処理が直ちに開始されます。この属性を省略した場合、現在のスレッドは、指定されたすべてのスレッドの実行が完了するまで待機します。

    注意: これらの関数は、cftransaction タグを使用して作成したトランザクションと組み合わせて使用することもできます。

    本文を持つサービスタグColdFusion には、次のサービスタグに対応するオブジェクトが用意されており、これらのオブジェクトは CFC として実装されます。

    • cfftp

    • cfhttp

    • cfmail

    • cfpdf

    • cfquery

    • cfstoredproc

    これらのタグは本文を持ち、クエリーの実行やメールの送信などのサービスを提供します。これらのタグの多くは action 属性を持ちますが、残りのタグは暗黙的なアクション (execute など ) を持ちます。cfmail と cfpdf を除く各サービスタグでは、該当するプロパティセットを含むコンポーネントが返され、データにアクセスするにはそれらのプロパティに対して getter を呼び出す必要があります。

    注意: 以前は、getName() メソッドおよび getResult() メソッドを呼び出すと、クエリーの結果セット、pdf オブジェクト、または ftp 接頭辞などのデータが返されていましたが、現在は、その代わりに、適切なプロパティセットを含むコンポーネントが返されるようになりました。

    オブジェクト名は、タグ名から cf 接頭辞を取り除いたものになります (ftp など )。これらのオブジェクトは、子タグの機能 (cfmailpart や cfmailparam など ) もサポートします。

    注意: 暗黙的な setter が使用されているときに cfmailpart や cfmailparam などの子タグが追加された場合、それらのタグは CFC 変数スコープ内に追加されるため、スレッドセーフティの問題が発生する可能性があります。したがって、サービスごとに新しいコンポーネントを作成することをお勧めします。属性の状態を保持する必要がある場合、初期化された属性値を保持するには、そのコンポーネントに対して duplicate() を使用します。

    これらのタグを関数で使用するには :

    1 サービスオブジェクトをインスタンス化します。

    2 オブジェクトの属性と子タグを設定します。

  • 20COLDFUSION 10 アプリケーションの開発CFML プログラミング言語

    最終更新日 2012/7/12

    3 オブジェクトに対してアクションを実行します。

    注意: 対応するタグとは異なり、これらの関数では、アプリケーション固有のパラメータを使用できません。使用できるパラメータは、ColdFusion で直接サポートされるパラメータのみです。

    手順 1 : サービスオブジェクトのインスタンス化関数オブジェクト (メールオブジェクトなど ) を作成するには、次の例のように new 演算子または createobject() 関数を使用します。

    myMail = new mail(server="sendmail.myCo.com");

    手順 2a : 属性の管理属性は次に示すいずれかの方法で設定できます。

    • 次の例のように、オブジェクトをインスタンス化するときに、オブジェクトイニシャライザに対する name=value 形式のパラメータとして設定する。

    myMail = new mail(server="sendmail.myCo.com");

    • 次の例のように、オブジェクトのアクションメソッドに対する name=value 形式のパラメータとして設定する。Q = myQuery.execute(sql="select * from art");

    • 次の例のように、属性設定メソッドを使用する。

    myMail.setSubject("Hi");

    注意: getAttributeName 関数を使用して、AttributeName で指定された属性の値を取得することはできません。その場合は、代わりに GetAttributes(AttributeName) を使用します。

    • 次の関数を使用する。

    SetAttributes(attrib1=value,attrib2=value,...);

    GetAttributes([attribName1[,attribName2]]....);

    ClearAttributes([attribName1[,attribName2]]...);

    注意: ストアドプロシージャの result 属性を指定した場合に getPrefix() を呼び出すと、executionTime,statusCode,cached が返されます。result 属性を指定していない場合に getPrefix() を呼び出すと、executionTime と statusCode のみが返されます。

    手順 2b: 子タグの操作の管理すべてのサービスオブジェクトは、子タグを持つタグに対応します。たとえば、cfmail は、子タグとして cfmailpart および cfmailparam を持ちます。

    子タグの機能を指定するには、次のメソッドを使用します。

    • httpObj.addParam

    • mailObj.addParam

    • mailObj.addPart

    • pdfObj.addParam

    • queryObj.addParam

    • storedProcObj.addParam

    • storedProcObj.addProcResult

    次に例を示します。

    mailObj.addparam(file="#ExpandPath('test.txt')#");

    mailObj.addPart(name="foo",type="html",charset="utf-8",

    body="This is a test message.");

  • 21COLDFUSION 10 アプリケーションの開発CFML プログラミング言語

    最終更新日 2012/7/12

    次の関数を呼び出して子タグの設定を消去することもできます。

    • httpObj.clearParams

    • mailObj.clearParams

    • mailObj.clearParts

    • pdfObj.clearParams

    • queryObj.clearParams

    • storedProcO