gpt4 book ai didi

java - Websphere 8 + 工作管理器 ClassCastException

转载 作者:行者123 更新时间:2023-11-30 11:19:19 25 4
gpt4 key购买 nike

通过 JNDI 从 WAS 获取 commonj Workmanager 不是什么大问题,但我的代码在 OSGi 环境中失败(我使用的是 bundleActivator,而不是 aries 蓝图)。

import commonj.work.WorkManager; 
InitialContext ic = new InitialContext();
WorkManager wm = (WorkManager)ic.lookup("java:comp/env/wm/myWorkManager");

此代码块在 WAR 中运行良好。但是,如果我将它添加到我的 native OSGi 包中,它会因 ClassCastException 而失败。

检查我的对象时它告诉我 workManager 是 com.ibm.ws.asynchbeans.WorkManagerImpl 的一个实例。

在 IBM WorkManager 和 CommonJ WorkManager 之间创建一个自定义委托(delegate)者应该没什么大不了的,但由于我的研究,除了包含该类的 JAR 之外,我找不到 IBM workManager 的类层次结构。

我们使用 Websphere 8.0.0.6。

WorkManager.class.getClassLoader() = org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@d34707f4

wm.getClass().getClassLoader().loadClass(WorkManager.class.getName()).getClassLoader() = org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader@5d968aee

WorkManager.class.getProtectionDomain().getCodeSource().getLocation() = 文件:/D:/dev/IBM/WebSphere/AppServer/profiles/AppSrv01/installedEBAs/jndi-workmanager_0.0.1.SNAPSHOT/byValue/c13b7c6c -1881-477c-a339-e0c4f992e35b.0/0/

最佳答案

根据类源位置,您似乎已将 commonj.work 类打包到您的包中。您应该删除它们以允许从 WebSphere Application Server 运行时加载它们。

关于java - Websphere 8 + 工作管理器 ClassCastException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23300425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com