Liberty의 JMX Java 클라이언트 개발
Liberty의 보안 REST 커넥터에 액세스하는 JMX(Java™ Management Extensions) 클라이언트 애플리케이션을 개발할 수 있습니다.
이 태스크 정보
JMX 원격 클라이언트 애플리케이션을 사용하면 JMX 프로그래밍을 통해 Liberty를 관리할 수 있습니다.
프로시저
- 샘플 JMX 클라이언트를 개발하십시오. REST 커넥터는 표준 JMX API를 지원합니다.restConnector-1.0
기능이 구성되어 시작된 Liberty 서버의 경우,
${server.output.dir}/logs/state/com.ibm.ws.jmx.rest.address의 컨텐츠를
사용하여 새 JMXServiceURL 오브젝트를 인스턴스화할 수 있습니다.
import javax.management.remote.JMXServiceURL; import javax.management.MBeanServerConnection; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import java.util.HashMap; public class Test { public static void main(String[] args) { System.setProperty("javax.net.ssl.trustStore", <truststore location>); System.setProperty("javax.net.ssl.trustStorePassword", <truststore password>); //If the type of the trustStore is not jks, which is default, //set the type by using the following line. System.setProperty("javax.net.ssl.trustStoreType", <truststore type>); try { HashMap<String, Object> environment = new HashMap<String, Object>(); environment.put("jmx.remote.protocol.provider.pkgs", "com.ibm.ws.jmx.connector.client"); environment.put(JMXConnector.CREDENTIALS, new String[] { "bob", "bobpassword" }); JMXServiceURL url = new JMXServiceURL("service:jmx:rest://<host>:<port>/IBMJMXConnectorREST"); JMXConnector connector = JMXConnectorFactory.newJMXConnector(url, environment); connector.connect(); MBeanServerConnection mbsc = connector.getMBeanServerConnection(); } catch(Throwable t) { ... } } }
- 옵션: SSL 인증서에 대한 호스트 이름 검증을 사용 안함으로 설정하십시오.
Liberty와 함께 설치된 인증서에는 서버가 실행 중인 호스트의
이름이 포함되지 않을 수 있습니다. SSL 인증서의 호스트 이름 검증을 사용 안함으로 설정하려는 경우,
시스템 특성 com.ibm.ws.jmx.connector.client.disableURLHostnameVerification을 true로 설정하십시오.
그러면 모든 연결에 대해 호스트 이름 검증이 사용되지 않습니다. 각 연결 기준으로
호스트 이름 검증을 사용 안함으로 설정하려면 JMX 연결 작성 시
이 특성을 새 environment로 전달하십시오.
HashMap<String, Object> environment = new HashMap<String, Object>(); environment.put("jmx.remote.protocol.provider.pkgs", "com.ibm.ws.jmx.connector.client"); environment.put("com.ibm.ws.jmx.connector.client.disableURLHostnameVerification", Boolean.TRUE); environment.put(JMXConnector.CREDENTIALS, new String[] { "bob", "bobpassword" }); ...
- 옵션: 환경 맵을 사용하여 JMX REST 커넥터 설정을 구성하십시오.
... HashMap<String, Object> environment = new HashMap<String, Object>(); environment.put("com.ibm.ws.jmx.connector.client.rest.maxServerWaitTime", 0); environment.put("com.ibm.ws.jmx.connector.client.rest.notificationDeliveryInterval", 65000); ...
- 옵션: Liberty REST 커넥터를 사용하면 특정 사용자 정의 SSL 소켓 팩토리를 사용하여 소켓을 얻을
수 있습니다. javax.net.ssl.SSLHandshakeException: com.ibm.jsse2.util.j:
PKIX path building failed: java.security.cert.CertPathBuilderException:
unable to find valid certification path to requested target 예외가 표시되는 경우,
사용자 자신의 키 저장소로부터 고유한 SSLContext를 작성한 후 REST 커넥터와 함께 그
컨텍스트에서 SocketFactory를 사용할 수 있습니다.
KeyStore trustStore = KeyStore.getInstance(KeyStore.getDefaultType()); InputStream inputStream = new FileInputStream("myTrustStore.jks"); trustStore.load(inputStream, "password".toCharArray()); TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm()); trustManagerFactory.init(trustStore); TrustManager[] trustManagers = trustManagerFactory.getTrustManagers(); SSLContext sslContext = SSLContext.getInstance("SSL"); sslContext.init(null, trustManagers, null); Map<String, Object> environment = new HashMap<String, Object>(); environment.put(ConnectorSettings.CUSTOM_SSLSOCKETFACTORY, sslContext.getSocketFactory()); environment.put(ConnectorSettings.DISABLE_HOSTNAME_VERIFICATION, true); environment.put("jmx.remote.protocol.provider.pkgs", "com.ibm.ws.jmx.connector.client"); environment.put(JMXConnector.CREDENTIALS, new String[] { "admin", "password" }); JMXServiceURL url = new JMXServiceURL("REST", "myhost", 9443, "/IBMJMXConnectorREST"); jmxConn = JMXConnectorFactory.connect(url, environment);
상위 주제: Liberty에 대한 보안 JMX 연결 구성
관련 태스크:


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_dev_jmxclient
파일 이름: twlp_dev_jmxclient.html