利用基于 JMX 的 AdminClient 获取 WebSphere Application Server 的环境参数

在开发基于的 WebSphere Application Server 的应用时,有时会需要获取 WAS 的
环境参数,如应用程序配置的数据源,JVM 的参数设置等等。WAS 提供了 AdminClient,
一个基于 JMX 的程序包。它通过连接 WAS 的 SOAP 端口读取所需的信息。

 

package com.ibm.admin.config.check; import java.util.Properties; import javax.management.InstanceNotFoundException; import javax.management.ObjectName; import com.ibm.websphere.management.AdminClient; import com.ibm.websphere.management.AdminClientFactory; import com.ibm.websphere.management.configservice.ConfigService; import com.ibm.websphere.management.configservice.ConfigServiceProxy; import com.ibm.websphere.management.exception.ConfigServiceException; import com.ibm.websphere.management.exception.ConnectorException; public class AdminClientExample { AdminClient adminClient = null; ConfigService configService = null; public void createConncetion() { // Set up a Properties object for the JMX connector attributes String wasInstallLocation = "/opt/IBM/WebSphere/AppServer"; String trustStore = "/profiles/dwe/etc/DummyClientTrustFile.jks"; String keyStore = "/profiles/dwe/etc/DummyClientKeyFile.jks"; String trustStorePW = "WebAS"; String keyStorePW = "WebAS"; Properties connectProps = new Properties(); connectProps.setProperty( AdminClient.USERNAME, "administrator" ); connectProps.setProperty( AdminClient.PASSWORD, "passw0rd" ); connectProps.setProperty( AdminClient.CONNECTOR_TYPE, AdminClient.CONNECTOR_TYPE_SOAP ); connectProps.setProperty( AdminClient.CONNECTOR_HOST, "localhost" ); connectProps.setProperty( AdminClient.CONNECTOR_PORT, "" + "8880" ); connectProps.setProperty(AdminClient.CONNECTOR_SECURITY_ENABLED, "true"); connectProps.setProperty( "javax.net.ssl.trustStore", wasInstallLocation + trustStore ); connectProps.setProperty( "javax.net.ssl.keyStore", wasInstallLocation + keyStore ); connectProps.setProperty( "javax.net.ssl.trustStorePassword", trustStorePW ); connectProps.setProperty( "javax.net.ssl.keyStorePassword", keyStorePW ); // create a new connection try { adminClient = AdminClientFactory.createAdminClient( connectProps ); } catch (ConnectorException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String getGenericJVMArguments() { String genericJvmArgs = ""; try { configService = new ConfigServiceProxy( adminClient ); ObjectName server = configService.resolve( null, null, "Server" )[0]; ObjectName javavm = configService.resolve( null, server, "JavaVirtualMachine" )[0]; genericJvmArgs = configService.getAttribute( null, javavm, "genericJvmArguments" ).toString(); } catch (InstanceNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ConfigServiceException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ConnectorException e) { // TODO Auto-generated catch block e.printStackTrace(); } return genericJvmArgs; } public static void main(String[] args) { AdminClientExample adminClientExamp = new AdminClientExample(); adminClientExamp.createConncetion(); String jvmArgs = adminClientExamp.getGenericJVMArguments(); System.out.println(jvmArgs); } }

你可能感兴趣的:(利用基于 JMX 的 AdminClient 获取 WebSphere Application Server 的环境参数)