Show Menu
トピック×

Java API を使用した AEM Forms の呼び出し

AEM Forms Java API を使用して AEM Forms を呼び出すことができます。AEM Forms Java API を使用している場合、呼び出し API または Java クライアントライブラリを使用できます。Java クライアントライブラリは、Rights Management サービスなどのサービスで使用できます。これらの強く型付けされた API を使用することによって、AEM Forms を呼び出す Java アプリケーションを開発できます。
呼び出し API は、 com.adobe.idp.dsc パッケージに含まれるクラスです。これらのクラスを使用して、呼び出し要求をサービスに直接送信し、返される呼び出し応答を処理することができます。Workbench を使用して作成された長期間有効なプロセスまたは短時間のみ有効なプロセスを、呼び出し API を使用して呼び出します。
プログラムでサービスを呼び出すには、呼び出し API ではなくサービスに対応する Java クライアントライブラリを使用することをお勧めします。例えば、Encryption サービスを呼び出すには、Encryption サービスのクライアントライブラリを使用します。Encryption サービスの操作を実行するには、Encryption サービスクライアントオブジェクトに属するメソッドを呼び出します。 EncryptionServiceClient オブジェクトの encryptPDFUsingPassword メソッドを使用して、PDF ドキュメントをパスワードで暗号化することができます。
Java API は次の機能をサポートしています。
  • リモート呼び出しのための RMI トランスポートプロトコル
  • ローカル呼び出しのための VM トランスポート
  • リモート呼び出しのための SOAP
  • ユーザー名とパスワードなどの、他の認証方法
  • 同期および非同期の呼び出し要求
Adobe Developer Web サイト
Adobe Developer の Web サイトには、Java API を使用して AEM Forms サービスを呼び出す方法が記載されています。
関連トピック

AEM Forms Java ライブラリファイルを含める

Java API を使用してプログラムで AEM Forms サービスを呼び出すには、Java プロジェクトのクラスパスに必要なライブラリファイル(JAR ファイル)を含めます。クライアントアプリケーションのクラスパスに含める JAR ファイルは、いくつかの要因によって異なります。
  • 呼び出す AEM Forms サービス。クライアントアプリケーションは 1 つ以上のサービスを呼び出すことができます。
  • AEM Forms サービスを呼び出すモード。EJB モードまたは SOAP モードを使用できます。( 接続プロパティの設定 を参照。)
(自動オプションのみ)AEM Formsサーバーを開始し、EJB用のサー standalone.bat -b <Server IP> -c lc_turnkey.xml バーIPを指定するコマンドを使用します。
  • AEM Forms のデプロイ先 J2EE アプリケーションサーバー。

サービス固有の JAR ファイル

次の表に、AEM Forms サービスを呼び出すために必要な JAR ファイルを示します。
ファイル
説明
場所
adobe-livecycle-client.jar
Java クライアントアプリケーションのクラスパスに常に含める必要があります。
< インストールディレクトリ >/sdk/client-libs/common
adobe-usermanager-client.jar
Java クライアントアプリケーションのクラスパスに常に含める必要があります。
< インストールディレクトリ >/sdk/client-libs/common
adobe-utilities.jar
Java クライアントアプリケーションのクラスパスに常に含める必要があります。
< インストールディレクトリ >/sdk//client-libs/<アプリケーションサーバー>
adobe-applicationmanager-client-sdk.jar
Application Manager サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-assembler-client.jar
Assembler サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-backup-restore-client-sdk.jar
Backup and Restore サービス API を呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-barcodedforms-client.jar
Barcoded Forms サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-convertpdf-client.jar
Convert PDF サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-distiller-client.jar
Distiller サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-docconverter-client.jar
DocConverter サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-contentservices-client.jar
Document Management サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-encryption-client.jar
Encryption サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-forms-client.jar
Forms サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-formdataintegration-client.jar
Form Data Integration サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-generatepdf-client.jar
Generate PDF サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-generate3dpdf-client.jar
Generate 3D PDF サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-jobmanager-client-sdk.jar
Job Manager サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-output-client.jar
Output サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-pdfutility-client.jar
PDF Utilities サービスまたは XMP Utilities サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-reader-extensions-client.jar
Acrobat Reader DC エクステンションサービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-repository-client.jar
commons-codec-1.3.jar
Repository サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
< インストールディレクトリ >/sdk/client-libs/thirdparty
  • adobe-rightsmanagement-client.jar
  • namespace.jar
  • jaxb-api.jar
  • jaxb-impl.jar
  • jaxb-libs.jar
  • jaxb-xjc.jar
  • relaxngDatatype.jar
  • xsdlib.jar
Rights Management サービスを呼び出すために必要です。
AEM Forms が JBoss 上にデプロイされている場合は、これらのファイルをすべて含めます。
< インストールディレクトリ >/sdk/client-libs/common
JBoss 固有の lib ディレクトリ
adobe-signatures-client.jar
Signature サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-taskmanager-client-sdk.jar
Task Manager サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common
adobe-truststore-client.jar
Trust Store サービスを呼び出すために必要です。
< インストールディレクトリ >/sdk/client-libs/common

接続モードと J2EE アプリケーション JAR ファイル

次の表に、接続モードと AEM Forms のデプロイ先 J2EE アプリケーションサーバーに依存する JAR ファイルを示します。
ファイル
説明
場所
  • activation.jar
  • axis.jar
  • commons-codec-1.3.jar
  • commons-collections-3.1.jar
  • commons-discovery.jar
  • commons-logging.jar
  • dom3-xml-apis-2.5.0.jar
  • jaxen-1.1-beta-9.jar
  • jaxrpc.jar
  • log4j.jar
  • mail.jar
  • saaj.jar
  • wsdl4j.jar
  • xalan.jar
  • xbean.jar
  • xercesImpl.jar
  • commons-httpclient-3.1.jar
AEM Forms を SOAP モードを使用して呼び出す場合は、これらの JAR ファイルを含めます。
< インストールディレクトリ >/sdk/client-libs/thirdparty
jboss-client.jar
AEM Forms が JBoss Application Server 上にデプロイされている場合は、この JAR ファイルを含めます。
jboss-client.jarと参照先のjarが共存していない場合、必須のクラスはクラスローダーで見つかりません。
JBoss クライアントの lib ディレクトリ
クライアントアプリケーションを同じ J2EE アプリケーションサーバー上にデプロイする場合は、このファイルを含める必要はありません。
wlclient.jar
AEM Forms が BEA WebLogicServer® 上にデプロイされている場合は、この JAR ファイルを含めます。
WebLogic 固有の lib ディレクトリ
クライアントアプリケーションを同じ J2EE アプリケーションサーバー上にデプロイする場合は、このファイルを含める必要はありません。
  • com.ibm.ws.admin.client_6.1.0.jar
  • com.ibm.ws.webservices.thinclient_6.1.0.jar
  • AEM Forms が WebSphere Application Server 上にデプロイされている場合は、これらの JAR ファイルを含めます。
  • (Web サービスの呼び出しには com.ibm.ws.webservices.thinclient_6.1.0.jar が必要です)。
WebSphere 固有の lib ディレクトリ( [過去のホームディレクトリ] /runtimes)
クライアントアプリケーションを同じ J2EE アプリケーションサーバーにデプロイする場合は、これらのファイルを含める必要はありません。

呼び出しシナリオ

次の表に、呼び出しシナリオと、AEM Forms を正常に呼び出すために必要な JAR ファイルを示します。
サービス
呼び出しモード
J2EE アプリケーションサーバー
必須の JAR ファイル
Forms サービス
EJB
JBoss
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • jboss-client.jar
  • adobe-forms-client.jar
  • commons-httpclient-3.1.jar
Forms サービス
Acrobat Reader DC エクステンションサービス
Signature サービス
EJB
JBoss
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • jboss-client.jar
  • commons-httpclient-3.1.jar
  • adobe-forms-client.jar
  • adobe-reader-extensions-client.jar
  • adobe-signatures-client.jar
Forms サービス
SOAP
WebLogic
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • wlclient.jar
  • activation.jar
  • axis.jar
  • commons-codec-1.3.jar
  • commons-collections-3.1.jar
  • commons-discovery.jar
  • commons-logging.jar
  • dom3-xml-apis-2.5.0.jar
  • jai_imageio.jar
  • jaxen-1.1-beta-9.jar
  • jaxrpc.jar
  • log4j.jar
  • mail.jar
  • saaj.jar
  • wsdl4j.jar
  • xalan.jar
  • xbean.jar
  • xercesImpl.jar
  • adobe-forms-client.jar
Forms サービス
Acrobat Reader DC エクステンションサービス
Signature サービス
SOAP
WebLogic
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
  • wlclient.jar
  • activation.jar
  • axis.jar
  • commons-codec-1.3.jar
  • commons-collections-3.1.jar
  • commons-discovery.jar
  • commons-logging.jar
  • dom3-xml-apis-2.5.0.jar
  • jai_imageio.jar
  • jaxen-1.1-beta-9.jar
  • jaxrpc.jar
  • log4j.jar
  • mail.jar
  • saaj.jar
  • wsdl4j.jar
  • xalan.jar
  • xbean.jar
  • xercesImpl.jar
  • adobe-forms-client.jar
  • adobe-reader-extensions-client.jar
  • adobe-signatures-client.jar

JAR ファイルのアップグレード

LiveCycle から AEM Forms にアップグレードする場合は、Java プロジェクトのクラスパスに AEM Forms JAR ファイルを含めることをお勧めします。例えば、Rights Management サービスなどのサービスを使用している場合、クラスパスに AEM Forms JAR ファイルを含めないと、互換性の問題が発生します。
AEM Forms にアップグレードするとします。Rights Management サービスを呼び出す Java アプリケーションを使用するには、次の JAR ファイルの AEM Forms バージョンを含めます。
  • adobe-rightsmanagement-client.jar
  • adobe-livecycle-client.jar
  • adobe-usermanager-client.jar
関連トピック

接続プロパティの設定

Java API を使用している場合、AEM Forms を呼び出すためには接続プロパティを設定します。接続プロパティを設定する場合は、サービスをリモートとローカルのどちらで呼び出すかどうかを指定し、接続モードと認証値も指定します。サービスセキュリティが有効な場合は、認証値が必要です。ただし、サービスセキュリティが無効の場合は、認証値を指定する必要はありません。
接続モードは、SOAP モードまたは EJB モードです。EJB モードは RMI/IIOP プロトコルを使用し、EJB モードのパフォーマンスは SOAP モードのパフォーマンスよりも優れています。SOAP モードは、J2EE アプリケーションサーバーの依存関係を解消するため、または AEM Forms とクライアントアプリケーションの間にファイアウォールが設定されている場合に使用されます。SOAP モードでは、基礎のトランスポートとして https プロトコルを使用するので、ファイアウォールの境界を越えて通信できます。J2EE アプリケーションサーバーの依存関係もファイアウォールも問題でない場合は、EJB モードを使用することをお勧めします。
AEM Forms サービスを正常に呼び出すには、次の接続プロパティを設定します。
  • DSC_DEFAULT_EJB_ENDPOINT :EJB 接続モードを使用している場合、この値は AEM Forms のデプロイ先 J2EE アプリケーションサーバーの URL を表します。リモートで AEM Forms を呼び出すには、AEM Forms のデプロイ先 J2EE アプリケーションサーバー名を指定します。クライアントアプリケーションが同じ J2EE アプリケーションサーバー上にある場合は、 localhost を指定できます。AEM Forms のデプロイ先 J2EE アプリケーションサーバーに応じて、次のいずれかの値を指定します。
    • JBoss: https://<ServerName>:8080 (default port)
    • WebSphere: iiop://<ServerName>:2809 (default port)
    • WebLogic: t3://<ServerName>:7001 (default port)
  • DSC_DEFAULT_SOAP_ENDPOINT :SOAP 接続モードを使用している場合、この値は呼び出し要求が送信されるエンドポイントを表します。リモートで AEM Forms を呼び出すには、AEM Forms のデプロイ先 J2EE アプリケーションサーバー名を指定します。クライアントアプリケーションが同じ J2EE アプリケーションサーバー上にある場合は、 localhost (例えば http://localhost:8080 )を指定できます。
    • ポート値 8080 は、J2EE アプリケーションが JBoss の場合に適用されます。J2EE アプリケーションサーバーが IBM® WebSphere® の場合は、ポート 9080 を使用します。同様に、J2EE アプリケーションサーバーが WebLogic の場合は、ポート 7001 を使用します。(これらの値はデフォルトのポート値です。ポートの値を変更する場合は、適用可能なポート番号を使用してください。)
  • DSC_TRANSPORT_PROTOCOL :EJB 接続モードを使用している場合は、この値に ServiceClientFactoryProperties.DSC_EJB_PROTOCOL を指定します。If you are using the SOAP connection mode, specify ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL .
  • DSC_SERVER_TYPE :AEM Forms のデプロイ先 J2EE アプリケーションサーバーを指定します。Valid values are JBoss , WebSphere , WebLogic .
    • If you set this connection property to WebSphere , the java.naming.factory.initial value is set to com.ibm.ws.naming.util.WsnInitCtxFactory .
    • If you set this connection property to WebLogic , the java.naming.factory.initial value is set to weblogic.jndi.WLInitialContextFactory .
    • Likewise, if you set this connection property to JBoss , the java.naming.factory.initial value is set to org.jnp.interfaces.NamingContextFactory .
    • デフォルトの値を使用しない場合、 java.naming.factory.initial プロパティを要件を満たす値に設定することができます。
    Instead of using a string to set the DSC_SERVER_TYPE connection property, you can use a static member of the ServiceClientFactoryProperties class. The following values can be used: ServiceClientFactoryProperties.DSC_WEBSPHERE_SERVER_TYPE , ServiceClientFactoryProperties.DSC_WEBLOGIC_SERVER_TYPE , or ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE .
  • DSC_CREDENTIAL_USERNAME :AEM Forms ユーザー名を指定します。ユーザーが AEM Forms サービスを正常に呼び出すには、サービスユーザーのロールが必要です。ユーザーは、サービス呼び出し権限を含む別のロールを持つこともできます。権限を持たないユーザーの場合、サービスの呼び出しを試行するときに例外が発生します。サービスセキュリティが無効の場合、この接続プロパティを指定する必要はありません。
  • DSC_CREDENTIAL_PASSWORD :対応するパスワード値を指定します。サービスセキュリティが無効の場合、この接続プロパティを指定する必要はありません。
  • DSC_REQUEST_TIMEOUT :SOAP 要求のデフォルト要求タイムアウト制限は、1200000 ミリ秒(20 分)です。場合によって、要求の操作が完了するのに長い時間を要することがあります。例えば、大量のレコードセットを取得する SOAP 要求では、より長いタイムアウト制限が必要になることがあります。 ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT を使用して、SOAP 要求の要求呼び出しタイムアウト制限を増やすことができます。
    注意 :SOAP ベースの呼び出しのみが DSC_REQUEST_TIMEOUT プロパティをサポートしています。
接続プロパティを設定するには、次のタスクを実行します。
  1. コンストラクタを使用して java.util.Properties オブジェクトを作成します。
  2. To set the DSC_DEFAULT_EJB_ENDPOINT connection property, invoke the java.util.Properties object’s setProperty method and pass the following values:
    • The ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT enumeration value
    • AEM Forms をホストする J2EE アプリケーションサーバーの URL を指定する文字列値
    If you are using the SOAP connection mode, specify the ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT enumeration value instead of the ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT enumeration value.
  3. To set the DSC_TRANSPORT_PROTOCOL connection property, invoke the java.util.Properties object’s setProperty method and pass the following values:
    • The ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL enumeration value
    • The ServiceClientFactoryProperties.DSC_EJB_PROTOCOL enumeration value
    If you are using the SOAP connection mode, specify the ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL enumeration value instead of the ServiceClientFactoryProperties.DSC_EJB_PROTOCOL enumeration value.
  4. To set the DSC_SERVER_TYPE connection property, invoke the java.util.Properties object’s setProperty method and pass the following values:
    • ServiceClientFactoryProperties.DSC_SERVER_TYPE 定義済みリスト値
    • AEM Forms をホストする J2EE アプリケーションサーバーを指定する文字列値(例えば、AEM Forms が にデプロイされている場合は JBoss JBoss を指定します)。
      1. To set the DSC_CREDENTIAL_USERNAME connection property, invoke the java.util.Properties object’s setProperty method and pass the following values:
    • The ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME enumeration value
    • AEM Forms を呼び出すのに必要なユーザー名を指定する文字列値
      1. To set the DSC_CREDENTIAL_PASSWORD connection property, invoke the java.util.Properties object’s setProperty method and pass the following values:
    • The ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD enumeration value
    • 対応するパスワード値を指定する文字列値
JBoss用のEJB接続モードの設定
次の Java コードの例では、JBoss にデプロイされ EJB 接続モードを使用している AEM Forms を呼び出すための接続プロパティを設定しています。
 Properties ConnectionProps = new Properties();
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "https://<hostname>:8080");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DOCUMENT_HTTP_ENDPOINT,"https://<hostname>:8080");

WebLogic 用の EJB 接続モードの設定
次の Java コードの例では、WebLogic にデプロイされ EJB 接続モードを使用している AEM Forms を呼び出すための接続プロパティを設定しています。
 Properties ConnectionProps = new Properties();
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "t3://localhost:7001");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "WebLogic");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");

WebSphere 用の EJB 接続モードの設定
次の Java コードの例では、WebSphere にデプロイされ EJB 接続モードを使用している AEM Forms を呼び出すための接続プロパティを設定しています。
 Properties ConnectionProps = new Properties();
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "iiop://localhost:2809");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "WebSphere");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");

SOAP 接続モードの設定
次の Java コードの例では、SOAP モードで接続プロパティを設定して、JBoss にデプロイされた AEM Forms を呼び出します。
 Properties ConnectionProps = new Properties();
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://localhost:8080");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");

SOAP 接続モードを選択した場合は、クライアントアプリケーションのクラスパスに追加の JAR ファイルを含めるようにしてください。
サービスセキュリティが無効な場合の接続プロパティの設定
次の Java コードの例では、サービスセキュリティが無効な場合に JBoss Application Server にデプロイされた AEM Forms を呼び出すために必要な接続プロパティを設定します。
 Properties ConnectionProps = new Properties();
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "jnp://localhost:1099");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");

AEM Forms でのプログラミングに関連するすべての Java クイックスタートは、EJB と SOAP の両方の接続設定を示します。
カスタム要求タイムアウト制限を含む SOAP 接続モードの設定
 Properties ConnectionProps = new Properties();
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_SOAP_ENDPOINT, "http://localhost:8080");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL,ServiceClientFactoryProperties.DSC_SOAP_PROTOCOL);
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, "JBoss");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_USERNAME, "administrator");
 ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_CREDENTIAL_PASSWORD, "password");
ConnectionProps.setProperty(ServiceClientFactoryProperties.DSC_REQUEST_TIMEOUT, "1800000"); // Request timeout limit 30 Minutes

Context オブジェクトを使用した AEM Forms の呼び出し
com.adobe.idp.Context オブジェクトを使用して、認証されたユーザーで AEM Forms サービスを呼び出すことができます( com.adobe.idp.Context オブジェクトが認証されたユーザーを表します)。When using a com.adobe.idp.Context object, you do not need to set the DSC_CREDENTIAL_USERNAME or DSC_CREDENTIAL_PASSWORD properties. You can obtain a com.adobe.idp.Context object when authenicating users by using the AuthenticationManagerServiceClient object’s authenticate method.
authenticate メソッドは、認証の結果を含む AuthResult オブジェクトを返します。コンストラクタを呼び出すことによって、 com.adobe.idp.Context オブジェクトを作成できます。次に、次のコードに示すように、 com.adobe.idp.Context オブジェクトの initPrincipal メソッドを呼び出し、 AuthResult オブジェクトを渡します。
 Context myCtx = new Context();
 myCtx.initPrincipal(authResult);

Instead of setting the DSC_CREDENTIAL_USERNAME or DSC_CREDENTIAL_PASSWORD properties, you can invoke the ServiceClientFactory object’s setContext method and pass the com.adobe.idp.Context object. When using a AEM forms user to invoke a service, ensure that they have the role named Services User that is required to invoke a AEM Forms service.
次のコードの例では、 com.adobe.idp.Context オブジェクトを作成するために使用される接続設定内で EncryptionServiceClient オブジェクトを使用する方法を示します。
 //Authenticate a user and use the Context object within connection settings
 // Authenticate the user
 String username = "wblue";
 String password = "password";
 AuthResult authResult = authClient.authenticate(username, password.getBytes());
 
 //Set a Content object that represents the authenticated user
 //Use the Context object to invoke the Encryption service
 Context myCtx = new Context();
 myCtx.initPrincipal(authResult);
 
 //Set connection settings
 Properties connectionProps = new Properties();
 connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DEFAULT_EJB_ENDPOINT, "jnp://<server>:1099");
 connectionProps.setProperty(ServiceClientFactoryProperties.DSC_TRANSPORT_PROTOCOL, ServiceClientFactoryProperties.DSC_EJB_PROTOCOL);
 connectionProps.setProperty(ServiceClientFactoryProperties.DSC_SERVER_TYPE, ServiceClientFactoryProperties.DSC_JBOSS_SERVER_TYPE);
 connectionProps.setProperty(ServiceClientFactoryProperties.DSC_DOCUMENT_HTTP_ENDPOINT,"jnp://<server>:1099");

 
 //Create a ServiceClientFactory object
 ServiceClientFactory myFactory = ServiceClientFactory.createInstance(connectionProps);
 myFactory.setContext(myCtx);
 
 //Create an EncryptionServiceClient object
 EncryptionServiceClient encryptClient  = new EncryptionServiceClient(myFactory);

ユーザーの認証の詳細については、 ユーザーの認証 を参照してください。

呼び出しシナリオ

この節では、以下の呼び出しシナリオについて説明します。
  • 独自の Java 仮想マシン(JVM)で実行されているクライアントアプリケーションは、スタンドアロンの AEM Forms インスタンスを呼び出します。
  • 独自の JVM で実行されているクライアントアプリケーションは、クラスター化された AEM Forms インスタンスを呼び出します。

スタンドアロン AEM Forms インスタンスを呼び出すクライアントアプリケーション

次の図は、独自の JVM で実行され、スタンドアロン AEM Forms インスタンスを呼び出すクライアントアプリケーションを示しています。
このシナリオでは、クライアントアプリケーションが独自の JVM で実行され、AEM Forms サービスを呼び出します。
このシナリオは、すべてのクイックスタートが基づいている呼び出しシナリオです。

クラスター化された AEM Forms インスタンスを呼び出すクライアントアプリケーション

次の図は、独自の JVM で実行され、クラスター内にある AEM Forms インスタンスを呼び出すクライアントアプリケーションを示しています。
このシナリオは、スタンドアロン AEM Forms インスタンスを呼び出すクライアントアプリケーションに似ています。ただし、プロバイダーの URL が異なります。クライアントアプリケーションが特定の J2EE アプリケーションサーバーに接続する場合、アプリケーションはその特定の J2EE アプリケーションサーバーを参照するように URL を変更する必要があります。
特定の J2EE アプリケーションサーバーを参照することは推奨されません。これは、アプリケーションサーバーが停止すると、クライアントアプリケーションと AEM Forms との間の接続が終了するためです。プロバイダー URL では、特定の J2EE アプリケーションサーバーではなく、セルレベルの JNDI マネージャーを参照することをお勧めします。
SOAP 接続モードを使用するクライアントアプリケーションは、クラスター用に HTTP ロードバランサーポートを使用できます。EJB 接続モードを使用するクライアントアプリケーションは、特定の J2EE アプリケーションサーバーの EJB ポートに接続できます。このアクションは、クラスターノード間の負荷分散を処理します。
WebSphere
次の例は、WebSphere にデプロイされた AEM Forms に接続するために使用される jndi.properties ファイルの内容を示しています。
 java.naming.factory.initial=com.ibm.websphere.naming.
 WsnInitialContextFactory
 java.naming.provider.url=corbaloc::appserver1:9810,:appserver2:9810

WebLogic
次の例は、WebLogic にデプロイされた AEM Forms に接続するために使用される jndi.properties ファイルの内容を示しています。
 java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
 java.naming.provider.url=t3://appserver1:8001, appserver2:8001

JBoss
次の例は、JBoss にデプロイされている AEM Forms に接続するために使用される jndi.properties ファイルの内容を示しています。
 java.naming.factory.initial= org.jnp.interfaces.NamingContextFactory
 java.naming.provider.url= jnp://appserver1:1099, appserver2:1099,
 appserver3:1099

管理者に相談して、J2EE アプリケーションサーバーの名前とポート番号を確認してください。
関連トピック

Java API を使用した AEM Forms サービスへのデータの引き渡し

AEM Forms サービス操作では、通常、PDF ドキュメントを使用または生成します。サービスを呼び出すときに、PDF ドキュメント(または XML データなどの他のドキュメントタイプ)をサービスに渡す必要がある場合があります。同様に、サービスから返される PDF ドキュメントを処理する必要があることもあります。AEM Forms サービスとの間でデータをやりとりできるようにする Java クラスは、 com.adobe.idp.Document です。
AEM Forms サービスは、PDF ドキュメントを java.io.InputStream オブジェクトやバイト配列などの他のデータ型としては受け入れません。 com.adobe.idp.Document オブジェクトを使用して、XML データなどの他のタイプのデータをサービスに渡すこともできます。
com.adobe.idp.Document オブジェクトは Java のシリアライズ可能な型であるため、RMI 呼び出しで渡すことができます。受信側は、同時配置(同じホスト、同じクラスローダー)することも、ローカル(同じホスト、別のクラスローダー)またはリモート(別のホスト)に配置することもできます。ドキュメントコンテンツの引き渡しは、それぞれの場合に最適化されます。例えば、送信者と受信者が同じホスト上にある場合、コンテンツはローカルファイルシステムを介して渡されます。(ドキュメントがメモリ内で渡される場合もあります)。
com.adobe.idp.Document オブジェクトのサイズに応じて、データは引き渡し用に com.adobe.idp.Document オブジェクト内に保持されるか、サーバーのファイルシステムに格納されます。 com.adobe.idp.Document オブジェクトが占有していた一時的なストレージリソースは、 com.adobe.idp.Document の破棄時に自動的に削除されます。( Document オブジェクトの廃棄 を参照。)
サービスに渡す前に、 com.adobe.idp.Document オブジェクトのコンテンツタイプを知る必要がある場合があります。例えば、操作で application/pdf などの特定のコンテンツタイプが必要な場合は、コンテンツタイプを確認することをお勧めします。( ドキュメントのコンテンツタイプの確認 を参照。)
com.adobe.idp.Document オブジェクトは、提示されたデータを使用してコンテンツタイプの判別を試行します。提示されたデータからコンテンツタイプを取得できない場合(例えば、データがバイト配列として提示された場合)は、コンテンツタイプを設定します。To set the content type, invoke the com.adobe.idp.Document object’s setContentType method. ( ドキュメントのコンテンツタイプの確認 を参照。)
コラテラルファイルが同じファイルシステム上にある場合は、 com.adobe.idp.Document オブジェクトを作成する方が効率的です。コラテラルファイルがリモートファイルシステム上に存在する場合は、コピー操作を実行する必要があるためパフォーマンスに影響します。
An application can contain both com.adobe.idp.Document and org.w3c.dom.Document data types. However, ensure that you fully qualify the org.w3c.dom.Document data type. org.w3c.dom.Document オブジェクトを com.adobe.idp.Document オブジェクトに変換する方法については、 クイックスタート(EJB モード):Java API を使用した流動レイアウトによるフォームの事前入力 を参照してください。
WebLogic で com.adobe.idp.Document オブジェクトの使用時にメモリリークが発生しないようにするには、ドキュメント情報を 2048 バイト以下のチャンクで読み取ります。例えば、次のコードは 2048 バイトのチャンクでドキュメント情報を読み取ります。
        // Set up the chunk size to prevent a potential memory leak
        int buffSize = 2048;
 
        // Determine the total number of bytes to read
        int docLength = (int) inDoc.length();
        byte [] byteDoc = new byte[docLength];
 
        // Set up the reading position
        int pos = 0;
 
        // Loop through the document information, 2048 bytes at a time
        while (docLength > 0) {
      // Read the next chunk of information
            int toRead = Math.min(buffSize, docLength);
            int bytesRead = inDoc.read(pos, byteDoc, pos, toRead);
 
            // Handle the exception in case data retrieval failed
            if (bytesRead == -1) {
 
                inDoc.doneReading();
                inDoc.dispose();
                throw new RuntimeException("Data retrieval failed!");
 
            }
 
             // Update the reading position and number of bytes remaining
             pos += bytesRead;
             docLength -= bytesRead;
 
        }
 
        // The document information has been successfully read
        inDoc.doneReading();
        inDoc.dispose();

関連トピック

ドキュメントの作成

入力値として PDF ドキュメント(または他のドキュメントタイプ)を必要とするサービス操作を呼び出す前に、 com.adobe.idp.Document オブジェクトを作成します。 com.adobe.idp.Document クラスは、次のコンテンツタイプからドキュメントを作成できるコンストラクタを提供します。
  • バイト配列
  • An existing com.adobe.idp.Document object
  • オブジェクト java.io.File です。
  • オブジェクト java.io.InputStream です。
  • オブジェクト java.net.URL です。

バイト配列に基づいたドキュメントの作成

次のコードの例では、バイト配列に基づいた com.adobe.idp.Document オブジェクトを作成します。
バイト配列に基づいた Document オブジェクトの作成
 Document myPDFDocument = new Document(myByteArray);

別のドキュメントに基づいたドキュメントの作成

次のコードの例では、別の com.adobe.idp.Document オブジェクトに基づいた com.adobe.idp.Document オブジェクトを作成します。
別のドキュメントに基づいた Document オブジェクトの作成
 //Create a Document object based on a byte array
 InputStream is = new FileInputStream("C:\\Map.pdf");
 int len = is.available();
 byte [] myByteArray = new byte[len];
 int i = 0;
 while (i < len) {
       i += is.read(myByteArray, i, len);
 }
 Document myPDFDocument = new Document(myByteArray);
 
 //Create another Document object
 Document anotherDocument = new Document(myPDFDocument);

ファイルに基づいたドキュメントの作成

The following code example creates a com.adobe.idp.Document object that is based on a PDF file named map.pdf . このファイルは C ハードドライブのルートにあります。このコンストラクタは、ファイル拡張子を使用して com.adobe.idp.Document オブジェクトの MIME コンテンツタイプの設定を試行します。
com.adobe.idp.Document オブジェクトを受け入れる java.io.File コンストラクタは、ブール型パラメーターも受け入れます。このパラメーターを true に設定すると、 com.adobe.idp.Document オブジェクトによってファイルが削除されます。このアクションは、ファイルを com.adobe.idp.Document コンストラクタに渡した後にファイルを削除する必要がないことを意味します。
このパラメーターを false に設定すると、このファイルの所有権が保持されます。このパラメーターを true に設定する方が効率的です。理由は、 com.adobe.idp.Document オブジェクトがファイルをコピーする(これは遅い操作です)のではなくローカルの管理対象領域に直接移動できるためです。
PDF ファイルに基づいた Document オブジェクトの作成
 //Create a Document object based on the map.pdf source file
 File mySourceMap = new File("C:\\map.pdf");
 Document myPDFDocument = new Document(mySourceMap,true);

InputStream オブジェクトに基づいたドキュメントの作成

次の Java コードの例では、 com.adobe.idp.Document オブジェクトに基づいた java.io.InputStream オブジェクトを作成します。
InputStream オブジェクトに基づいたドキュメントの作成
 //Create a Document object based on an InputStream object
 InputStream is = new FileInputStream("C:\\Map.pdf");
 Document myPDFDocument = new Document(is);

URL からアクセス可能なコンテンツに基づいたドキュメントの作成

The following Java code example creates a com.adobe.idp.Document object that is based on a PDF file named map.pdf . このファイルは、 WebApp で実行されている localhost という名前の Web アプリケーション内にあります。このコンストラクタは、URL プロトコルで返されるコンテンツタイプを使用して com.adobe.idp.Document オブジェクトの MIME コンテンツタイプの設定を試行します。
次の例に示すように、 com.adobe.idp.Document オブジェクトに提供される URL は、元の com.adobe.idp.Document オブジェクトが作成されるのに伴って必ず読み取られます。
     Document doc = new Document(new java.net.URL("file:c:/temp/input.pdf"));

C:/temp/input.pdf ファイルは、(サーバーコンピューターではなく)クライアントコンピューター上に置く必要があります。クライアントコンピューター上で URL が読み取られ、 com.adobe.idp.Document オブジェクトが作成されます。
URL からアクセス可能なコンテンツに基づいたドキュメントの作成
 //Create a Document object based on a java.net.URL object
 URL myURL = new URL("http", "localhost", 8080,"/WebApp/map.pdf");
 
 //Create another Document object
 Document myPDFDocument = new Document(myURL);

関連トピック

返されたドキュメントの処理

PDF ドキュメント(または XML データなどの他のデータ型)を出力値として返すサービス操作では、 com.adobe.idp.Document オブジェクトが返されます。受け取った com.adobe.idp.Document オブジェクトは、次の形式に変換できます。
  • オブジェクト java.io.File です。
  • オブジェクト java.io.InputStream です。
  • バイト配列
次のコード行では、 com.adobe.idp.Document オブジェクトを java.io.InputStream オブジェクトに変換します。Assume that myPDFDocument represents a com.adobe.idp.Document object:
     java.io.InputStream resultStream = myDocument.getInputStream();

同様に、次のタスクを実行することによって、 com.adobe.idp.Document の内容をローカルファイルにコピーできます。
  1. Create a java.io.File object.
  2. Invoke the com.adobe.idp.Document object’s copyToFile method and pass the java.io.File object.
次のコードの例では、 com.adobe.idp.Document オブジェクトの内容を AnotherMap.pdf という名前のファイルにコピーします。
Document オブジェクトの内容のファイルへのコピー
 File outFile = new File("C:\\AnotherMap.pdf");
 myDocument.copyToFile (outFile);

関連トピック

ドキュメントのコンテンツタイプの確認

Determine the MIME type of a com.adobe.idp.Document object by invoking the com.adobe.idp.Document object’s getContentType method. このメソッドは、 com.adobe.idp.Document オブジェクトのコンテンツタイプを指定する文字列値を返します。次の表で、AEM Forms が返す様々なコンテンツタイプについて説明します。
MIME タイプ
説明
application/pdf
PDF ドキュメント
application/vnd.adobe.xdp+xml
書き出された XML フォームアーキテクチャ(XFA)フォームに使用される XML データパッケージ(XDP)
text/xml
ブックマーク、添付ファイル、またはその他の XML ドキュメント
application/vnd.fdf
書き出された Acrobat フォームに使用されるフォームデータフォーマット(FDF)
application/vnd.adobe.xfdf
書き出された Acrobat フォームに使用される XML フォームデータフォーマット(XFDF)
application/rdf+xml
リッチデータフォーマットと XML
application/octet-stream
汎用のデータフォーマット
NULL
不特定の MIME タイプ
次のコードの例では、 com.adobe.idp.Document オブジェクトのコンテンツタイプを確認します。
Document オブジェクトのコンテンツタイプの確認
 //Determine the content type of the Document object
 String ct = myDocument.getContentType();
 System.out.println("The content type of the Document object is " +ct);

関連トピック

Document オブジェクトの廃棄

Document オブジェクトが不要になったら、その dispose メソッドを呼び出すことで破棄することをお勧めします。各 Document オブジェクトは、アプリケーションのホストプラットフォーム上でファイル記述子と最大 75 MB の RAM 領域を消費します。 Document オブジェクトが破棄されていない場合、Java のガベージコレクションプロセスによって破棄されます。ただし、 dispose メソッドを使用してより早く廃棄することによって、 Document オブジェクトが占有するメモリを解放することができます。
関連トピック

Java クライアントライブラリを使用したサービスの呼び出し

AEM Forms サービス操作は、サービスの強く型付けされた API である Java クライアントライブラリを使用して呼び出すことができます。 Java クライアントライブラリ ​は、サービスコンテナにデプロイされたサービスへのアクセスを提供する具象クラスのセットです。呼び出し API を使用して InvocationRequest オブジェクトを作成する代わりに、呼び出すサービスを表す Java オブジェクトをインスタンス化します。呼び出し API は、Workbench で作成された長期間有効なプロセスなどのプロセスを呼び出すために使用されます。( 人間中心の長期間有効なプロセスの呼び出し を参照。)
サービス操作を実行するには、Java オブジェクトに属するメソッドを呼び出します。通常、Java クライアントライブラリにはサービス操作に 1 対 1 で対応するメソッドが含まれています。Java クライアントライブラリを使用している場合は、必要な接続プロパティを設定します。( 接続プロパティの設定 を参照。)
接続プロパティを設定したら、サービスを呼び出すための Java オブジェクトをインスタンス化するために使用される ServiceClientFactory オブジェクトを作成します。Java クライアントライブラリを持つ各サービスには、対応するクライアントオブジェクトがあります。例えば、Repository サービスを呼び出すには、コンストラクタを使用して ResourceRepositoryClient オブジェクトを渡すことによって ServiceClientFactory オブジェクトを作成します。 ServiceClientFactory オブジェクトは、AEM Forms サービスを呼び出すために必要な接続設定を維持する役割を果たします。
ServiceClientFactory の取得は通常は高速ですが、ファクトリを初めて使用するときにはオーバーヘッドが発生します。このオブジェクトは再利用のために最適化されているため、複数の Java クライアントオブジェクトを作成する場合は、可能であれば同じ ServiceClientFactory オブジェクトを使用してください。つまり、作成するクライアントライブラリオブジェクトごとに個別の ServiceClientFactory オブジェクトを作成しないでください。
com.adobe.idp.Context オブジェクトに影響を与える ServiceClientFactory オブジェクトの内部にある SAML アサーションの有効期間を制御する User Manager 設定があります。この設定は、Java API を使用して実行されるすべての呼び出しを含む、AEM Forms 全体のすべての認証コンテキストの有効期間を制御します。デフォルトでは、 ServiceCleintFactory オブジェクトを使用できる期間は 2 時間です。
Java API を使用してサービスを呼び出す方法を説明するために、Repository サービスの writeResource 操作が呼び出されます。この操作により、新しいリソースがリポジトリに配置されます。
Java クライアントライブラリを使用して次の手順を実行することにより、Repository サービスを呼び出すことができます。
  1. adobe-repository-client.jar などのクライアント JAR ファイルを Java プロジェクトのクラスパスに含めます。これらのファイルの場所については、 AEM Forms Java ライブラリファイルを含める を参照してください。
  2. サービスを呼び出すために必要な接続プロパティを設定します。
  3. Create a ServiceClientFactory object by invoking the ServiceClientFactory object’s static createInstance method and passing the java.util.Properties object that contains connection properties.
  4. コンストラクタを使用して ResourceRepositoryClient オブジェクトを渡すことによって、 ServiceClientFactory オブジェクトを作成します。 ResourceRepositoryClient オブジェクトを使用して、Repository サービス操作を呼び出します。
  5. そのコンストラクタを使用して RepositoryInfomodelFactoryBean を渡すことによって、 null オブジェクトを作成します。このオブジェクトを使用すると、リポジトリに追加されるコンテンツを表す Resource オブジェクトを作成できます。
  6. Create a Resource object by invoking the RepositoryInfomodelFactoryBean object’s newImage method and passing the following values:
    • A unique ID value by specifying new Id() .
    • A unique UUID value by specifying new Lid() .
    • リソースの名前。XDP ファイルのファイル名を指定できます。
    戻り値を Resource にキャストします。
  7. Create a ResourceContent object by invoking the RepositoryInfomodelFactoryBean object’s newImage method and casting the return value to ResourceContent . このオブジェクトはリポジトリに追加されるコンテンツを表します。
  8. リポジトリに追加する XDP ファイルを格納する com.adobe.idp.Document オブジェクトを渡して、 java.io.FileInputStream オブジェクトを作成します。( InputStream オブジェクトに基づいたドキュメントの作成 を参照。)
  9. Add the content of the com.adobe.idp.Document object to the ResourceContent object by invoking the ResourceContent object’s setDataDocument method. Pass the com.adobe.idp.Document object.
  10. Set the MIME type of the XDP file to add to the repository by invoking the ResourceContent object’s setMimeType method and passing application/vnd.adobe.xdp+xml .
  11. Add the content of the ResourceContent object to the Resource object by invoking the Resource object ‘s setContent method and passing the ResourceContent object.
  12. Resource オブジェクトの setDescription メソッドを呼び出して、リソースの説明を表す文字列値を渡すことによって、リソースの説明を追加します。
  13. ResourceRepositoryClient オブジェクトの writeResource メソッドを呼び出し、次の値を渡すことによってフォームデザインをリポジトリに追加します。
    • 新しいリソースを含むリソースコレクションへのパスを指定する文字列値
    • 作成された Resource オブジェクト
関連トピック

呼び出し API を使用した短時間のみ有効なプロセスの呼び出し

Java 呼び出し API を使用して、短時間のみ有効なプロセスを呼び出すことができます。呼び出し API を使用して短時間のみ有効なプロセスを呼び出す場合は、 java.util.HashMap オブジェクトを使用して必須のパラメーター値を渡します。各パラメーターをサービスに渡すには、 java.util.HashMap オブジェクトの put メソッドを呼び出し、指定された操作を実行するためにサービスが必要とする名前と値のペアを指定します。短時間のみ有効なプロセスに属するパラメーターの正確な名前を指定します。
長期間有効なプロセスの呼び出しの詳細については、 人間中心の長期間有効なプロセスの呼び出し を参照してください。
ここでは、呼び出し API を使用して MyApplication/EncryptDocument という名前の短時間のみ有効な AEM Forms を呼び出す方法について説明します。
このプロセスは、既存の AEM Forms プロセスに基づいていません。このコードの例の流れを追うには、Workbench を使用して MyApplication/EncryptDocument という名前のプロセスを作成します。( Workbench の使用 を参照。)
このプロセスを呼び出すと、次のアクションが実行されます。
  1. プロセスに渡された保護されていない PDF ドキュメントを取得します。このアクションは SetValue 操作に基づいています。このプロセスの入力パラメーターは、 document という名前の inDoc プロセス変数です。
  2. PDF ドキュメントをパスワードで暗号化します。このアクションは PasswordEncryptPDF 操作に基づいています。パスワードで暗号化された PDF ドキュメントは、 outDoc という名前のプロセス変数として返されます。

Java 呼び出し API を使用した短時間のみ有効なプロセス MyApplication/EncryptDocument の呼び出し

Java 呼び出し API を使用して短時間のみ有効なプロセスの MyApplication/EncryptDocument を呼び出します。
  1. adobe-livecycle-client.jar などのクライアント JAR ファイルを Java プロジェクトのクラスパスに含めます。( AEM Forms Java ライブラリファイルを含める を参照。)
  2. 接続プロパティを含む ServiceClientFactory オブジェクトを作成します。( 接続プロパティの設定 を参照。)
  3. コンストラクタを使用して ServiceClient オブジェクトを渡すことによって、 ServiceClientFactory オブジェクトを作成します。 ServiceClient オブジェクトを使用すると、サービス操作を呼び出すことができます。呼び出し要求の検索、ディスパッチ、ルーティングなどのタスクを処理します。
  4. コンストラクタを使用して java.util.HashMap オブジェクトを作成します。
  5. 各入力パラメーターに対して java.util.HashMap オブジェクトの put メソッドを呼び出して、長期間有効なプロセスに渡します。短時間のみ有効なプロセスの MyApplication/EncryptDocument では、 Document 型の入力パラメーターが 1 つ必要です。次の例に示すように、 put メソッドを呼び出す必要があるのは 1 回だけです。
     //Create a Map object to store the parameter value for inDoc
     Map params = new HashMap();
     InputStream inFile = new FileInputStream("C:\\Adobe\Loan.pdf");
     Document inDoc = new Document(inFile);
     params.put("inDoc", inDoc);
    
    
  6. Create an InvocationRequest object by invoking the ServiceClientFactory object’s createInvocationRequest method and passing the following values:
    • 長期間有効なプロセスを指定する文字列値。プロセスを呼び出す MyApplication/EncryptDocument には、を指定しま MyApplication/EncryptDocument す。
    • プロセス操作名を表す文字列値。通常、短時間のみ有効なプロセス操作の名前は invoke です。
    • サービス操作に必要なパラメーター値を含む java.util.HashMap オブジェクト。
    • true を指定するブール値。これを渡すと同期要求が作成されます(この値は、短時間のみ有効なプロセスを呼び出すために適用されます)。
  7. ServiceClient オブジェクトの invoke メソッドを呼び出し、 InvocationRequest オブジェクトを渡すことによって、呼び出し要求をサービスに送信します。The invoke method returns an InvocationReponse object.
    false メソッドの 4 番目のパラメーターとして createInvocationRequest を渡すことによって、長期間有効なプロセスを呼び出すことができます。値 false * を渡すと、非同期要求が作成されます。*
  8. InvocationReponse オブジェクトの getOutputParameter メソッドを呼び出して、出力パラメーターの名前を指定する文字列値を渡すことによって、プロセスの戻り値を取得します。In this situation, specify outDoc ( outDoc is the name of the output parameter for the MyApplication/EncryptDocument process). 以下の例のように、戻り値を Document にキャストします。
     InvocationResponse response = myServiceClient.invoke(request);
     Document encryptDoc = (Document) response.getOutputParameter("outDoc");
    
    
  9. java.io.File オブジェクトを作成し、ファイル拡張子が .pdf であることを確認します。
  10. Invoke the com.adobe.idp.Document object’s copyToFile method to copy the contents of the com.adobe.idp.Document object to the file. com.adobe.idp.Document メソッドから返された getOutputParameter オブジェクトを必ず使用してください。
関連トピック