Java シン・クライアント・アプリケーションの実行
Java™ シン・クライアントは、WebSphere® Application Client または WebSphere Application Server のいずれかがインストールされているマシン上で実行することができます。
このタスクについて
重要: Java シン・クライアントは、JDBC プロバイダー・クラスにはパッケージされていません。
例えば、WebSphere Application Server バージョン 8.5 Java シン・クライアントは、Apache Derby 10.2 クラスにはパッケージされません。したがって、Java シン・クライアントで JDBC プロバイダー・クラス (Apache Derby、Oracle、DB2®、Informix®、
Sybase など) を利用するには、以下の操作が必要です。
Java シン・クライアント・アプリケーションを実行するための Java 呼び出しは、
クライアントとサーバーとでは異なります。Java シン・クライアント・アプリケーションをクライアント・インストール・システムとサーバー・インストール・システムの両方で実行する必要がある場合は、『サーバー・マシンでの Java シン・クライアント・アプリケーションの実行』トピックに記載されている手順に従ってください。- Java シン・クライアント・アプリケーション環境にクラスを追加します。
- Java シン・クライアント・アプリケーションからこれらのクラスが見えるようにします。そのためには、 クライアント・プログラムを起動したスクリプト内のクライアント・クラスパスに、これらのクラスへのパスを追加します。
手順
例
WebSphere Application Server インスタンスでセキュリティーを使用可能にした場合、Java シン・アプリケーション・クライアントでは、セキュリティー・プロバイダーを設定するための追加コードが必要なくなります。マイグレーションおよび互換性の問題を防ぐために、IBM® i
Java シン・クライアントで検出されたこのコードを除去する必要があります。プロパティー・ディレクトリーの WebSphere インスタンスからの java.security ファイルは、現在セキュリティー・プロバイダーを構成するために使用されています。
セキュリティーを使用可能にしてシン・クライアントを実行する。以下のコード例は、
セキュリティー・プロバイダーがどのように main() メソッドでプログラマチックに設定され、
エンタープライズ Bean にアクセスするコードの前に置かれたかを示しています。
import java.security.*;
...
if (System.getProperty("os.name").equals("OS/400")) {
// Set the default provider list first.
Provider jceProv = null;
Provider jsseProv = null;
Provider sunProv = null;
// Allow for when the Provider is not needed, when
// it is not in the client application's classpath.
try {
jceProv = new com.ibm.crypto.provider.IBMJCE();
}
catch (Exception ex) {
ex.printStackTrace();
throw new Exception("Unable to acquire provider.");
}
try {
jsseProv = new com.ibm.jsse.JSSEProvider();
}
catch (Exception ex) {
ex.printStackTrace();
throw new Exception("Unable to acquire provider.");
}
try {
sunProv = new sun.security.provider.Sun();
}
catch (Exception ex) {
ex.printStackTrace();
throw new Exception("Unable to acquire provider.");
}
// Enable providers early and ahead of other providers
// for consistent performance and function.
if ( (null != sunProv) && (1 != Security.insertProviderAt(sunProv, 1)) ) {
Security.removeProvider(sunProv.getName());
Security.insertProviderAt(sunProv, 1);
}
if ( (null != jceProv) && (2 != Security.insertProviderAt(jceProv, 2)) ) {
Security.removeProvider(jceProv.getName());
Security.insertProviderAt(jceProv, 2);
}
if ( (null != jsseProv) && (3 != Security.insertProviderAt(jsseProv, 3)) ) {
Security.removeProvider(jsseProv.getName());
Security.insertProviderAt(jsseProv, 3);
}
// Adjust default ordering based on admin/startstd properties file.
// Maximum allowed in property file is 20.
String provName;
Class provClass;
Object provObj = null;
for (int i = 0; i < 21; i++) {
provName = System.getProperty("os400.security.provider."+ i);
if (null != provName) {
try {
provClass = Class.forName(provName);
provObj = provClass.newInstance();
}
catch (Exception ex) {
// provider not found
continue;
}
if (i != Security.insertProviderAt((Provider) provObj, i)) {
// index 0 adds to end of existing list
if (i != 0) {
Security.removeProvider(((Provider) provObj).getName());
Security.insertProviderAt((Provider) provObj, i);
}
}
} // end if (null != provName)
} // end for (int i = 0; i < 21; i++)
} // end if ("os.name").equals("OS/400")
Java シン・クライアント・アプリケーションの例については、『サンプル、バージョン 8.5』を参照してください。