java - t3 exception for get number of threads in weblogic -
i using jmx number of threads in weblogic error happens. code:
import java.util.hashtable; import javax.management.mbeanserver; 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; import javax.swing.plaf.basic.basicinternalframetitlepane.maximizeaction; import java.io.ioexception; import java.lang.management.managementfactory; import java.net.malformedurlexception; public class jmxclient { private static mbeanserverconnection connection; private static jmxconnector connector; private static objectname service; //update right port private static string port = "7001"; //update localhost if server accessed remotely private static string url = "t3://localhost:7001"; // update hostname if server accessed remotely private static string hostname = "localhost"; private static string username = "weblogic"; private static string password = "12345678"; // server name can differ host name private static string servername = "adminserver"; /* * initialize connection runtime mbean server */ private static void init() throws ioexception, malformedurlexception { string protocol = "t3"; integer portinteger = integer.valueof(port); int port = portinteger.intvalue(); string jndiroot = "/jndi/"; string mserver = "weblogic.management.mbeanservers.runtime"; //jmxserviceurl serviceurl = new jmxserviceurl(url); jmxserviceurl serviceurl = new jmxserviceurl(protocol, hostname, port, jndiroot + mserver); hashtable env = new hashtable(); env.put(context.security_principal, username); env.put(context.security_credentials, password); env.put(jmxconnectorfactory.protocol_provider_packages, "weblogic.management.runtime.jrockitruntimembean"); connector = jmxconnectorfactory.connect(serviceurl, env); connection = connector.getmbeanserverconnection(); seek { service = new objectname("com.bea:name="+servername + ",type=serverruntime"); } grab (malformedobjectnameexception e) { // todo auto-generated grab block e.printstacktrace(); } } public static void gettotalnumberofthreads() { seek { init(); long totalnumberofthreads = (long) connection.getattribute(service,"totalnumberofthreads"); system.out.println("totalnumberofthreads is: " + totalnumberofthreads); connection.invoke(service, "start", new object[] {}, new string[] {}); } catch(exception e) { e.printstacktrace(); } } public static void main(string[] args) { // invoke required methods jmxclient.gettotalnumberofthreads(); } }
the error :
java.net.malformedurlexception: unsupported protocol: t3 @ javax.management.remote.jmxconnectorfactory.newjmxconnector(unknown source) @ javax.management.remote.jmxconnectorfactory.connect(unknown source)
i don't know why happens. when using weblogic.management.remote state of application server, ok. number of threads, doesn't answer.
i set these 5 jars in classpath solved similar issue:
<include name="wlclient.jar" /> <include name="wljmsclient.jar" /> <include name="wls-api.jar"/> <include name="wljmxclient.jar"/> <include name="wlconnector.jar"/>
java weblogic rmi jmx
No comments:
Post a Comment