Java 씬 클라이언트 애플리케이션 실행
WebSphere® Application Client 설치 또는 WebSphere Application Server 설치로 설치된 시스템에서 Java™ 씬 클라이언트 애플리케이션을 실행할 수 있습니다.
이 태스크 정보
중요사항: Java 씬 클라이언트는
JDBC 제공자 클래스와 함께 패키징되지 않습니다. 예를 들어, WebSphere Application Server
버전 8.5 Java
씬 클라이언트는 Apache Derby 10.2 클래스와 함께 패키징되지 않습니다. 따라서
JDBC 제공자 클래스(예: Apache Derby, Oracle, DB2®, Informix®
또는 Sybase)를 Java
씬 클라이언트에서 이용하려면 다음을 수행해야
합니다.
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를 참조하십시오.