我正在尝试使用在Jboss 4.2上运行的Web应用程序使选定的会话(使用给定的sessionId)无效。从JMX控制台开始,一切都很完美 我不知道如何在java代码中做同样的事情。这是我已经创建的:
MBeanServer server=MBeanServerLocator.locateJBoss();
ObjectName objectName = new ObjectName("jboss.web:host=localhost,path=/,type=Manager");
ManagerBase manager = (ManagerBase)MBeanServerInvocationHandler.newProxyInstance(server, objectName, Manager.class, false);
manager.expireSession("sessionID");
但是这段代码给出了这个例外:
Caused by: java.lang.ClassCastException: com.sun.proxy.$Proxy574 cannot be cast to org.apache.catalina.session.ManagerBase
你能帮助我吗?
答案 0 :(得分:0)
您必须在以下链接中的地图检查中收集会话:
答案 1 :(得分:0)
如果您仍在寻找答案。该片段对我有用:
MBeanServer server = java.lang.management.ManagementFactory.getPlatformMBeanServer();
ObjectName objectName=new ObjectName("jboss.web:type=Manager,path=/test,host=default-host");
// declare signature of the parameter
String[] sig = { "java.lang.String"};
// your session id e.g. A7rOCAlFa+9uCeUfYNjJpd3r.undefined
Object[] opArgs1 = { sessionID };
// call the method
String value = (String) server.invoke(objectName, "expireSession",
opArgs1, sig);
我正在研究JBoss-7.1.1.Final。我的应用程序被称为" test"因此上下文根" / test"。您应该使用应用程序的名称创建objectName。