微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

JNDI 树:自定义工作管理器与默认工作管理器

如何解决JNDI 树:自定义工作管理器与默认工作管理器

我通过 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,但我错了。

解决方法

您必须使用的“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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。