【问题标题】:JNDI tree: custom work manager vs. default work managerJNDI 树:自定义工作管理器与默认工作管理器
【发布时间】:2021-05-23 09:56:48
【问题描述】:

我通过 Weblogic 控制台创建了一个全局范围的自定义工作管理器“WorkManagerHighPrio”。
默认工作管理器“default”列在 JNDI 树中,并且可以通过 java:global/wm/default 查找其引用。我想知道为什么我的自定义工作管理器没有在 JNDI 树中列出,而且查找 URL 是 java:comp/env/wm/WorkManagerHighPrio

java:globaljava:comp/env

我签入了config.xml,两个工作管理器的配置相似:

    <work-manager>
      <name>default</name>
      <target>app01_cluster</target>
      <min-threads-constraint>default_MinThreads</min-threads-constraint>
      <max-threads-constraint>default_MaxThreads</max-threads-constraint>
      <ignore-stuck-threads>false</ignore-stuck-threads>
    </work-manager>
    <work-manager>
      <name>WorkManagerHighPrio</name>
      <target>app01_cluster</target>
    </work-manager>

我需要将自定义工作管理器绑定在 java:global/wm 中,因为我需要在资源适配器中使用这个工作管理器。

WorkManager wm = (WorkManager) ic.lookup("java:global/wm/default");

在资源适配器应用程序中,我设法通过查找来检索默认工作管理器的引用,即使我遇到了下一个问题:

weblogic.work.j2ee.J2EEWorkManager cannot be cast to javax.resource.spi.work.WorkManager

我想,如果我在 ra 中查找工作经理,它会自动转换为javax.resource.spi.work.WorkManager,但我错了。

【问题讨论】:

    标签: java jakarta-ee weblogic weblogic12c


    【解决方案1】:

    您必须使用的“WorkManager”类是:commonj.work.WorkManager

    如文档中所述:

    工作管理器 API

    工作管理器 API commonj.work 提供了一组接口 允许应用程序同时执行多个工作项 在容器内。

    那里也有一个简单的“工作管理器示例”:

    https://docs.oracle.com/middleware/12212/wls/COMMJ/using_commonj.htm#GUID-72F860BE-9315-417E-B406-2C1ED17CE87F

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 1970-01-01
      • 2016-01-25
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 2017-03-15
      相关资源
      最近更新 更多