2

我正在尝试制作一个可以在运行时更改一些参数的 Mbean,但是在尝试调用操作时会发生以下错误:

java.rmi.UnmarshalException: Error unmarshaling return; nested exception is: java.lang.ClassNotFoundException: weblogic.management.NoAccessRuntimeException > (no security manager: RMI class loader disabled)

我正在使用 weblogic y jconsole。

代码:

 public class MyMBeanListener extends ApplicationLifecycleListener {

     public void postStart(weblogic.application.ApplicationLifecycleEvent p1) {
      try {
        ObjectName mymbean = 
            new ObjectName("monitor:Name=MyMonitor,Type=MyMonitorMBean");

        InitialContext ctx = new InitialContext();
        MBeanServer server = (MBeanServer)ctx.lookup("java:comp/jmx/runtime");

        MyMonitor monitor = new MyMonitor();

        server.registerMBean(monitor, mymbean);

        System.out.println(" MBean registered successfully!");


    } catch (Exception e) {
        e.printStackTrace();
    }

   }

  public interface MyMonitorMBean {
        public void setMessage(String msg);
   } 

  public class MyMonitor implements MyMonitorMBean {
      private String _con;
   @Override
   public synchronized void   setMessage(String msg) {
    _con = msg;
    }
  }
4

1 回答 1

0

如果您将 Weblogic 的 JAR 放在类路径中,它应该可以工作,或者至少您将摆脱 ClassNotFoundException

我会放 weblogic.jar 或 wlfullclient.jar(如果你有的话),尝试以类似于以下的方式运行 JConsole:

jconsole -J-Djava.class.path="Weblogic Lib Folder\weblogic.jar"
于 2013-10-15T00:51:06.557 回答