在 weblogic 上访问 Mbean

2023-12-09

来自 oracle 的文档:

域运行时 MBean 服务器:此 MBean 服务器也充当单个 驻留在托管服务器上的 MBean 的访问点。

我想要做的是利用这个事实来访问分散在多个托管服务器中的所有自定义 mBean。 例如假设我有两个节点 server-1 server-2 。 如何通过连接到管理员节点来访问 server-1 server-2 上的所有自定义 mBean?

我不想远程访问每个节点来返回结果我想要一个入口点 我通过这样做设法获得了服务器的名称和状态以及其他信息

    JMXConnector connector;
            ObjectName service;
            MBeanServerConnection connection;
            String protocol = "t3"; 
        Integer portInteger = Integer.valueOf(<admin server port>);

      int port = portInteger.intValue();
      String jndiroot = "/jndi/";
      String mserver = "weblogic.management.mbeanservers.runtime"; 

      JMXServiceURL serviceURL = new JMXServiceURL(protocol, "<serverName>", port,
      jndiroot + mserver);  

      Hashtable h = new Hashtable();
      h.put(Context.SECURITY_PRINCIPAL, "weblogic");
      h.put(Context.SECURITY_CREDENTIALS, "weblogicpass");
      h.put(JMXConnectorFactory.PROTOCOL_PROVIDER_PACKAGES,
         "weblogic.management.remote");
      h.put("jmx.remote.x.request.waiting.timeout", new Long(10000));
      connector = JMXConnectorFactory.connect(serviceURL, h);
      connection = connector.getMBeanServerConnection();  service = new ObjectName("com.bea:Name=DomainRuntimeService,Type=weblogic.management.mbeanservers.domainruntime.DomainRuntimeServiceMBean");
      ObjectName[] ons = (ObjectName[]) connection.getAttribute(service, "ServerRuntimes");
       int length = (int) ons.length;

      for (int i = 0; i < length; i++) {
         String name = (String) connection.getAttribute(ons[i],
            "Name");
         String state = (String) connection.getAttribute(ons[i],
            "State");
          String internalPort = (String) connection.getAttribute(ons[i],"ListenPort");
         System.out.println("Server name: " + name + ".   Server state: "
            + state);

但我需要访问在每台服务器上创建的自定义 Mbean,而不仅仅是信息


也许我的问题不清楚,但我找到了答案,我现在将在这里分享: 问题摘要:我需要通过从客户端应用程序连接到管理服务器来访问托管服务器中存在的自定义 mBean。

回答 : 为此,您需要将应用程序部署到管理员服务器(我尝试过远程,但没有成功)

您需要连接到 DomainRuntimeServiceMBean,因为它提供了一个公共访问点来导航到域中的所有运行时和配置 MBean。

搜索对象名称时添加 Location=

这是代码:

    Hashtable props = new Hashtable();
          props.put(Context.INITIAL_CONTEXT_FACTORY,
                    "weblogic.jndi.WLInitialContextFactory");

          props.put(Context.SECURITY_PRINCIPAL,   "<userName>");
          props.put(Context.SECURITY_CREDENTIALS, "<password>");
          Context ctx = new InitialContext(props);
  MBeanServer    server = (MBeanServer)ctx.lookup("java:comp/env/jmx/domainRuntime");


         ObjectName on =new ObjectName("com.<companyName>:Name=<Name>,Type=<Type>,Location=<managed_server_name>");
         boolean boolresult=(Boolean)server.invoke(on, "<method_Name>",
         new Object[]{"<ARG1>","<ARG2>","<ARG3>"}
         ,new String[]{"java.lang.String","java.lang.String","java.lang.String"}); 
         out.print(boolresult);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 weblogic 上访问 Mbean 的相关文章

随机推荐

  • Python Selenium().text 返回“–”而不是撇号(')

    我正在尝试收集有关 Seeking Alpha 的评论 例如 https seekingalpha com article 4243835 teslas low 2019 capex harm growth story brand valu
  • Oracle - 创建更新另一个表的触发器时出现问题

    我已阅读有关创建触发器的 Oracle 文档 并且正在按照其显示的方式执行操作 但这不起作用 我的目标是使用 TPM TRAININGPLAN 表中出现的最小 STARTDATE 更新 TPM PROJECT 表 因此 每次有人更新 TPM
  • Active Directory 是否不支持使用 PKCE 的授权代码流?

    我尝试使用当前推荐的授权代码流与 PKCE 来从 Active Directory 收集访问令牌 客户端将是一个公共 Angular SPA 这就是选择流程的原因 收集 AD 中的 openid 配置以及用户的授权代码效果很好 但我无法从以
  • 使用星号制作 ASCII 沙漏

    我知道有人问过这个问题 但我很难理解其他程序和嵌套循环 如果有人有遵循嵌套循环并制作带有星号的形状的技巧 我想知道 因为这真的让我感到困惑 这是我经过多次尝试和实验后编写的代码 Scanner input new Scanner Syste
  • Highcharts x 轴标签文本换行在设置标签步骤时丢失

    我在 X 轴上的 Highcharts 标签包装上遇到问题 设置时丢失 标签步骤属性 如下面的链接所示 正确的 http jsfiddle net Bimal 45Lp3 错误 http jsfiddle net ahwmv functio
  • 如何使用代码在Python中删除Mayavi工具栏

    我有几个 Mayavi 图 我将它们组合在一个窗口中 沿着文档 如果我能去掉所有工具栏就更好了 虽然可以右键单击每个工具栏以使它们消失 但我想对它们进行编码以使其消失 像这样的命令scene hide toolbar 将是理想的 我在 Tr
  • 使用 SetWindowPlacement 更改窗口的恢复位置并不适用于每个窗口

    我正在使用SetWindowPlacement函数可以 1 最大化和 2 更改外部窗口在桌面上的还原位置 但是当我在WinForm窗口上使用这个命令时 它似乎没有正确设置恢复位置 我正在测试的 WinForm 窗口只是一个无需修改即可运行的
  • 在 Google Chrome 扩展程序中显示 YouTube 视频

    我想将 YouTube 播放器嵌入到页面上并将其显示给用户 如果使用前台弹出窗口来承载播放器 那么当弹出窗口失去焦点时 播放器将被销毁 因为整个弹出窗口都被删除 我希望使用 webKitNotifications createHTMLNot
  • Android 日历视图日期颜色

    我有一个日期列表 我想在 calendarview 上将其涂成红色 我能怎么做 我的活动 public class Calendario extends Activity RelativeLayout rl final Calendar c
  • 将多个字符串写入文件而不删除浏览器的第一个 ANDROID 收藏夹

    我正在为学校制作一个简单的浏览器 并且我正在努力制作收藏夹 此处的代码将收藏夹添加到文件中 这样我可以在应用程序关闭后保留它 并将其显示在 TextView 中 我的问题是它只能保存一个 如果我添加第二个 第一个将被替换 我想我可以将它们添
  • MIPS 中括号的作用是什么?

    我一直在阅读一本介绍 MIPS 的项目书 但遇到了一个问题 书中的一行代码是lb t3 t2 我不知道括号的作用 因为在此之前 我还没有看到它们被使用过 而且本书一开始就没有提到它们 为什么代码不只是lb t3 t2 MIPS 寻址模式语法
  • Scala 中的动态 mixin - 可能吗?

    我想要实现的是正确实施 def dynamix A B a A A with B 我可能知道 B 是什么 但不知道 A 是什么 但如果 B 有 self 类型 那么我可以对 A 添加一些约束 scala 编译器对上述签名很满意 但我还无法弄
  • 如何在 linq 中获取随机行,最后插入的行位于顶部

    我试图针对每个请求显示随机产品 this OrderBy r gt Guid NewGuid 工作正常 但我试图在表记录很大时提高性能 所以我使用了第二个选项here 我的行动 public ActionResult ProductType
  • ES6 和 Promise 内的变量作用域

    不知道我在这里缺少什么 我需要得到的输出data into this contact 现在 我正在使用静态类变量 但必须这样做似乎很脏 export class contactEdit static t static class var c
  • 如何使用多处理在 for 循环中并行化对同一函数(具有不同参数)的两次调用?

    在 for 循环中 我使用不同的参数集调用一个函数两次 argSet1 argSet2 在 for 循环的每次迭代中都会发生变化 我想并行化此操作 因为一组参数会导致被调用的函数运行得更快 而另一组参数会导致函数运行缓慢 请注意 我do n
  • 您查找段错误原因的方法是什么?

    或者只是一般性地调试 您喜欢如何查找代码中的错误 专门针对 C C 但适用于所有语言 我一直在试图找到这个令人讨厌的段错误的原因 但我希望自己能找到它 而不是将其发布到网上 您对像我这样的学徒有什么建议吗 使用 gdb 等调试器并在出现 s
  • 在 Adapter 的构造函数中传递 Fragment

    由于 onClick 事件永远不会在ViewPager see 这个问题 我要设置onClickListener到适配器中的项目容器 这个想法是 当单击一个项目时 从适配器调用 Fragment 中的方法 其中该适配器设置为ViewPage
  • wpf mvvm混淆

    根据我对 mvvm 的理解是 有一个模型 也实现inotify的实体类 视图 xaml代码 和一些类如vm 通常继承icommand的控制器 让我们在特定事件上生成事件 命令 我只是想知道 viewmodel 类和 xaml 类背后的代码之
  • 正则表达式 - PCRE (PHP) - 单词边界 (\b) 和重音字符

    为什么这封信 算作单词边界匹配 b在下面的例子中 图案 b cum b i Text cum 匹配不需要的 cum 有可能克服这个吗 当您添加u正则表达式的修饰符 b cum b iu
  • 在 weblogic 上访问 Mbean

    来自 oracle 的文档 域运行时 MBean 服务器 此 MBean 服务器也充当单个 驻留在托管服务器上的 MBean 的访问点 我想要做的是利用这个事实来访问分散在多个托管服务器中的所有自定义 mBean 例如假设我有两个节点 se