You need to provide the server host name and port number in the JMX code and also set the class path before compiling it.
import java.io.IOException; import java.net.MalformedURLException; import java.util.Hashtable; import org.apache.log4j.Logger; import javax.management.MBeanServerConnection; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; import javax.management.remote.JMXConnector; import javax.management.remote.JMXConnectorFactory; import javax.management.remote.JMXServiceURL; import javax.naming.Context; public class WLMonitMain { private static MBeanServerConnection connection; private static JMXConnector connector; private static ObjectName service; static Logger log = Logger.getLogger(WLMonitMain.class.getName()); static { try { System.out.println("…"); service = new ObjectName( "com.bea:Name=RuntimeService," + "Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean"); } catch (MalformedObjectNameException e) { throw new AssertionError(e.getMessage()); } } public static void initConnection(String hostname, String portString, String username, String password) throws IOException, MalformedURLException { String protocol = "t3"; Integer portInteger = Integer.valueOf(portString); int port = portInteger.intValue(); String jndiroot = "/jndi/"; String mserver = "weblogic.management.mbeanservers.runtime"; JMXServiceURL serviceURL = new JMXServiceURL(protocol, hostname, port, jndiroot + mserver); Hashtable h = new Hashtable(); h.put(Context.SECURITY_PRINCIPAL, username); h.put(Context.SECURITY_CREDENTIALS, password); h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES, "weblogic.management.remote"); connector = JMXConnectorFactory.connect(serviceURL, h); connection = connector.getMBeanServerConnection(); } public static void testMethod() { try { ObjectName serverRuntime = (ObjectName) connection.getAttribute(service, "ServerRuntime"); String name = (String) connection.getAttribute(serverRuntime,"Name"); ObjectName jvmRuntime = new ObjectName("com.bea:ServerRuntime="+name+",Name="+name+",Type=JVMRuntime"); System.out.println("Heap Free Percent"+connection.getAttribute(jvmRuntime, "HeapFreePercent")); log.debug("Heap Free Percent"+connection.getAttribute(jvmRuntime, "HeapFreePercent")); ObjectName jdbcRuntime= new ObjectName("com.bea:ServerRuntime="+name+",Name="+name+",Type=JDBCServiceRuntime"); ObjectName[] dataSourceArray = (ObjectName[]) connection.getAttribute(jdbcRuntime,"JDBCDataSourceRuntimeMBeans"); for (int j = 0; j < dataSourceArray.length; j++){ String poolName = (String)connection.getAttribute(dataSourceArray[j], "Name"); System.out.println("poolName"+poolName); ObjectName jdbcDatasourceRuntime = new ObjectName("com.bea:ServerRuntime="+name+",Name="+poolName+",Type=JDBCDataSourceRuntime"); System.out.println("Datasource Status "+connection.getAttribute(jdbcDatasourceRuntime, "State")); log.info("Datasource Status "+connection.getAttribute(jdbcDatasourceRuntime, "State")); } } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) throws Exception { String hostname = "localhost"; String portString = "7001"; String username = "weblogic"; String password = "weblogic123"; System.out.println("initializing connection"); initConnection(hostname, portString, username, password); WLMonitMain.testMethod(); connector.close(); } }