高度なカスタマイズ > Info*Engine ユーザーガイド > SOAP サービス > スタンドアロン Java SOAP クライアントの例 > DAO の生成
  
DAO の生成
Data Access Objects (DAO) は、Info*Engine タスクから生成されます。各 DAO は、公開された Info*Engine タスクごとに 1 つのメソッド署名を公開します。
org.myOrg.Math クラスから生成された DAO は、以下の public メソッド署名を公開します。
public int sum ( int x, int y ) throws Exception;
public double average ( double [] nums ) throws Exception;
また、以下のコンストラクタ (クラス名を MathDAO と仮定) も公開します。
public MathDAO ( javax.resource.cci.Connection c, javax.
resource.cci.RecordFactory r );
javax.resource.cci.Connectionjavax.resource.cci.RecordFactory の必要なインスタンスの作成方法については、接続ハンドルの作成で説明します。
生成された DAO メソッドにより java.lang.Exception が発生することがあります。このような汎用例外が発生する理由は、SOAP リクエストの発行に使用される基盤となるクラスが変わることがあるからです。たとえば、接続の基本プロトコルとして HTTP または JMS を使用するように設定します。HTTP サービスが使用できない場合は、HTTP SOAP 接続が java.net.ConnectionRefused 例外を発行し、JMS 関連のエラーが発生した場合は JMS SOAP 接続が javax.jms.JMSException を発行します。
DAO の生成には、以下の情報が必要です。
endPoint
Info*Engine SOAP サービスのロケーションです。この値はオプションで、デフォルトは http://<ホスト>/<Windchill>/servlet/RPC です。コンフィギュレーションによっては、このデフォルト値が不適切な場合があります。その場合、この情報を明示的に指定する必要があります。サービスへのアクセスに資格証明が必要な場合は、http://<ユーザー>:<パスワード>@ホスト/... という URL 形式を使用します。
soapClass
DAO を生成する基本クラス (タイプ識別子) です。この例では、この値は org.myOrg.Math です。
fileSystem
この値は、Java ソースツリーのルートが位置するローカルディレクトリを指します。
package
生成ソースが属する Java パッケージの名前です。
class
生成されているクラスの名前です。
DAO の生成方法は 2 つあります。Java コマンドを手動で呼び出して DAO 生成ツールを実行するか、または Ant ビルドスクリプトで Ant 拡張を使用します。
この例では、以下のように仮定しています。
ユーザーは、SOAP サービスを実行しているホスト上でスタンドアロン Java クライアントを開発中。
SOAP サービスには、認証ユーザー名 (wcadmin) およびパスワード (wcadmin) が必要。
Java ソースツリーのルートは /home/user/src
Java コマンドラインを使用して org.myOrg.Math クラスの DAO を生成するには、以下のコマンド (すべて 1 行) を呼び出します。
java com.infoengine.connector.dao.DAOGenerator endPoint=http://wcadmin:wcadmin@localhost/
Windchill/servlet/RPC soapClass=org.myOrg.Math fileSystem=/home/user/src package=org.
myOrg.Math class=MathDAO
DAO を生成する Ant ビルドスクリプトは、以下のようなコードになります。
<?xml version="1.0"?>
<project name="generateDAO" default="all" basedir=".">

  <property name="wt.home" value="/opt/ptc/Windchill"/>

  <path id="cp">
    <pathelement location="$(wt.home)/codebase/WEB-INF/
lib/ieWeb.jar"/>
    <pathelement location="$(wt.home)/codebase/WEB-INF/
lib/ie3rdpartylibs.jar"/>
    <pathelement location="$(wt.home)/lib/servlet.jar"/>
  </path>

  <target name="declare">
    <taskdef name="generator" classname="com.infoengine.
connector.dao.AntDAOGenerator">
      <classpath refid="cp"/>
    </taskdef>
  </target>
  <target name="all" depends="declare">
    <generator
      endPoint="http://wcadmin:wcadmin@localhost/Windchill/
servlet/RPC"
      soapClass="org.myOrg.Math"
      fileSystem="/home/user/src"
package="org.myOrg.Math"
class="MathDAO"/>
  </target>

</project>
いずれかの DAO 生成方法を使用すると、org.myOrg.Math.MathDAO (/home/user/src/org/myOrg/Math/MathDAO.java) という完全修飾名を持つ Java ソースファイルが生成されます。