Talk:Java API
From jManageThis is not the right forum for such issues. Please send an email to jmanage-users@lists.sourceforge.net. When i tried to run the code given in the documentation( java API / adding an application i am getting an exception as shown below. Can anybody help me. Code : RemoteServiceContextFactory.setJManageURL( "http://prasanth:9090" ); ServiceContext context = RemoteServiceContextFactory.getServiceContext("admin", "123456", null, null); ConfigurationService configService = ServiceFactory.getConfigurationService(); ApplicationConfigData configData = new ApplicationConfigData();
configData.setHost ( "localhost" );
configData.setPort ( new Integer( 1099 ) );
configData.setName ( "NewTest" );
configData.setType ( "JBOSS" );
configData.setUsername ( "system" );
configData.setPassword ( "12345678" );
/* add application */
configData = configService.addApplication( context, configData );
System.out.println("ApplicationId:" + configData.getApplicationId());
Exception: java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at org.jmanage.core.remote.server.ServiceCallHandler.execute(ServiceCallHandler.java:75)
at org.jmanage.webui.servlets.ServiceInvokerServlet.processRequest(ServiceInvokerServlet.java:75)
at org.jmanage.webui.servlets.ServiceInvokerServlet.doPost(ServiceInvokerServlet.java:55)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:358)
at org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:294)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1807)
at org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:525)
at org.mortbay.http.HttpContext.handle(HttpContext.java:1757)
at org.mortbay.http.HttpServer.service(HttpServer.java:879)
at org.mortbay.http.HttpConnection.service(HttpConnection.java:790)
at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:961)
at org.mortbay.http.HttpConnection.handle(HttpConnection.java:807)
at org.mortbay.http.SocketListener.handleConnection(SocketListener.java:197)
at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:276)
at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:511)
Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.jmanage.core.remote.server.ServiceCallHandler.executeInternal(ServiceCallHandler.java:100)
at org.jmanage.core.remote.server.ServiceCallHandler.execute(ServiceCallHandler.java:57)
... 17 more
Caused by: java.lang.AssertionError at org.jmanage.core.services.ServiceContextImpl.getApplicationConfig(ServiceContextImpl.java:60)
at org.jmanage.core.services.AccessController.getACLContext(AccessController.java:84)
at org.jmanage.core.services.AccessController.canAccess(AccessController.java:51)
at org.jmanage.core.services.AccessController.checkAccess(AccessController.java:68)
at org.jmanage.core.services.AccessController.checkAccess(AccessController.java:77)
at org.jmanage.core.services.ConfigurationServiceImpl.addApplication(ConfigurationServiceImpl.java:40)
... 23 more
----------------------- Invoking an operation | ----------------------- package org.jmanage.core.services; import org.jmanage.core.auth.User; import org.jmanage.core.data.MBeanData; import org.jmanage.core.remote.client.HttpServiceProxy; import org.jmanage.core.data.OperationResultData; import org.jmanage.core.data.AttributeListData; import org.jmanage.core.data.ApplicationConfigData; import org.jmanage.core.management.*; import java.util.*; public class InvokeMethod { public InvokeMethod()
{
}
public static void main(String args[])
{
try
{
RemoteServiceContextFactory.setJManageURL( "http://localhost:9090" );
ServiceContext context = RemoteServiceContextFactory.getServiceContext(
"admin", "123456",
"prasanth",
"jboss.web.deployment:war=Sapp hire.war,id=-569298534");
MBeanService mbeanService = ServiceFactory.getMBeanService();
OperationResultData[] result = mbeanService.invoke(context,
"start", new String[]{});
/* this is not a cluster, so the number of results must be 1 */
assert result.length == 1;
System.out.println( result[0].isError()?"Error": "OK" );
System.out.println( result[0].getDisplayOutput() );
}catch( Exception e )
{
e.printStackTrace();
return ;
}
}
} [edit] Reading an attribute valueReading an attribute value| package org.jmanage.core.services; import org.jmanage.core.auth.User; import org.jmanage.core.data.MBeanData; import org.jmanage.core.remote.client.HttpServiceProxy; import org.jmanage.core.data.OperationResultData; import org.jmanage.core.data.AttributeListData; import org.jmanage.core.data.ApplicationConfigData; import org.jmanage.core.management.*; import java.util.*; public class ReadAttribute { static
{
ServiceFactory.init(ServiceFactory.MODE_REMOTE);
}
/**
* Set the URL at which jManage is running. This needs to be done
* before calling a service layer method.
* @param jmanageURL remote jManage URL, e.g., http://localhost:9090
*/
public static void setJManageURL(String jmanageURL)
{
HttpServiceProxy.setRemoteURL(jmanageURL);
}
/**
* Get a ServiceContext for invoking a Service function.
* The ServiceContext is built based on the given username,
* applicationName and the MBean name.
* @param username user that will be used for invoking service function
* @param password password for the given user
* @param applicationName application name (optional)
* @param mbeanName MBean name (optional)
* @return instance of ServiceContext which can be used to invoke
* service layer methods
*/
public static ServiceContext getServiceContext(String username,
String password,
String applicationName,
String mbeanName)
{
ServiceContextImpl context = new ServiceContextImpl();
/* set user */
User user = new User(username, null, null, null, 0);
user.setPlaintextPassword(password);
context.setUser(user);
/* set application name */
context.setApplicationName(applicationName);
/* set mbean name */
context.setMBeanName(mbeanName);
return context;
}
public static void main(String[] args)
{
try
{
RemoteServiceContextFactory.setJManageURL( "http://prasanth:9090" );
ServiceContext context = RemoteServiceContextFactory.getServiceContext(
"admin", "123456", "raheem","Catalina:type=Server" );
ConfigurationService configService= ServiceFactory.getConfigurationService();
MBeanService mbeanService= ServiceFactory.getMBeanService();
String []str = new String[1];
str[0] = new String("port");
AttributeListData[] attrData = null;
String appName = null;
attrData = mbeanService.getAttributes(context, str, true);
appName = attrData[0].getAppName();
System.out.println( appName );
List attrList = attrData[0].getAttributeList();
Iterator iter = attrList.iterator();
while( iter.hasNext() )
{
ObjectAttribute obj = ( ObjectAttribute ) iter.next();
Integer val = ( Integer ) obj.getValue();
System.out.println( val );
}
}catch( Exception e)
{
e.printStackTrace();
return ;
}
}
} |
