cfobject: Java または EJB オブジェクト

説明

Java および EJB (Enterprise Java Bean) オブジェクトの作成と操作を行います。

シンタックス

<cfobject
type = "Java"
action = "Create"
class = "Java class"
name = "object name">

関連項目

cfcollectioncfexecutecfindexcfreportcfsearchcfwddx、『ColdFusion MX 開発ガイド』のCFML アプリケーションへの J2EE および Java 要素の統合Java オブジェクトの使用

属性

属性 必須/
オプション
デフォルト 説明

type

オプション

 

オブジェクトタイプです。

  • com
  • corba
  • java

その他のオブジェクトタイプは、type 属性を取りません。

action

必須

 

Create: Java または WebLogic 環境オブジェクトを作成します。

class

必須

 

Java クラスです。

name

必須

 

文字列です。インスタンス化されたコンポーネント名を指定します。

使用方法

ColdFusion では、Java CFX または Java オブジェクトの呼び出しに、処理に組み込まれている JVM (Java Virtual Machine) を使用します。JVM の読み込み、保存場所および設定は、ColdFusion Administrator ページで指定できます。

ColdFusion Administrator で指定したクラスパスで使用可能な Java クラスは、cfobject タグを使用して ColdFusion からロードおよび使用が可能です。

Java メソッドとフィールドにアクセスするには、次の手順を実行します。

  1. cfobject タグを呼び出し、クラスを読み込みます。コード例を参照してください。
  2. 適切な引数で init メソッドを使用して、コンストラクタを呼び出します。例 :
    <cfset ret = myObj.init(arg1, arg2)>
    

最初に init メソッドを呼び出さずにオブジェクト上のパブリックメソッドを呼び出すと、デフォルトのコンストラクタが暗黙のうちに呼び出されます。引数および戻り値は、任意の Java タイプ (simple、array、object) になります。ColdFusion では、文字列が引数として渡された場合に変換が行われますが、戻り値として返された場合には変換は行われません。

オーバーロードされたメソッドは、引数の数が異なる場合はサポートされます。

EJB の呼び出し

EJB オブジェクトの作成と呼び出しを行うには、cfobject タグを使用します。この後の 2 番めの例では、WebLogic JNDI を使用して EJBHome インスタンスの登録と検出が行われます。

<!--- Java オブジェクトの例です。cfobject 呼び出しによってクラス MyClass が読み込まれますが、インスタンスオブジェクトは作成されません。スタティックなメソッドおよびフィールドには、cfobject を呼び出した後にアクセスできます。 --->
<cfobject
   action = "create"
   type = "java"
   class = "myclass"
   name = "myobj">


<!---- EJB の例 - cfobject タグによって、Weblogic Environment オブジェクトが作成されます。これを使って InitialContext を取得します。このコンテキストオブジェクトを EJBHome インターフェイスの検索に使用します。Create() を呼び出すと、ステートレスセッション EJB のインスタンスが取得されます。 --->

<cfobject
   action = "create"
   type = "java"
   class = "weblogic/jndi/Environment"
   name = "wlEnv">

<cfset ctx = wlEnv.getInitialContext()>
<cfset ejbHome = ctx.lookup("statelessSession.TraderHome")>
<cfset trader = ejbHome.Create()>                
<cfset value = trader.shareValue(20, 55.45)>                   
<cfoutput>
    Share value = #value#
</cfoutput>
<cfset value = trader.remove()>

ColdFusion MX 7 | ColdFusion MX 6.1 | ColdFusion MX* | ColdFusion 5* | フォーラム* | デベロッパーセンター | サポート情報 | バグ報告

バージョン7