首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Websphere 8上为Springs WorkManagerTaskExecutor获得一个JCA工作管理器

如何在Websphere 8上为Springs WorkManagerTaskExecutor获得一个JCA工作管理器
EN

Stack Overflow用户
提问于 2015-03-19 09:02:05
回答 1查看 1.1K关注 0票数 1

我们使用Websphere 8应用服务器,我希望在我们的We应用程序中使用服务器工作管理器。我试图获得对jca工作管理器javax.resource.spi.work.Workmanager的引用,以便将其与Spring org.springframework.jca.work.WorkManagerTaskExecutor一起使用。

web.xml中的资源-ref如下所示:

代码语言:javascript
复制
<resource-ref>
 <res-ref-name>workmanager/web</res-ref-name>
 <res-type>javax.resource.spi.work.WorkManager</res-type>
 <res-auth>Container</res-auth>
 <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

使用该配置,我得到以下异常:

代码语言:javascript
复制
Caused by: com.ibm.ws.asynchbeans.exception.AsynchBeanException: ASYN0064E: The value javax.resource.spi.work.WorkManager of the res-type resource reference element WorkManager is not right. Only the following values are allowed: com.ibm.websphere.asynchbeans.WorkManager, commonj.work.WorkManager.
at com.ibm.ws.asynchbeans.naming.WorkManagerFactory.validateWMResRef(WorkManagerFactory.java:379)
at com.ibm.ws.asynchbeans.naming.WorkManagerFactory.getObjectInstance(WorkManagerFactory.java:147)
at org.apache.aries.jndi.ObjectFactoryHelper$7.run(ObjectFactoryHelper.java:338)
at java.security.AccessController.doPrivileged(AccessController.java:362)
at org.apache.aries.jndi.Utils.doWithRestoredPrivileges(Utils.java:155)
at org.apache.aries.jndi.ObjectFactoryHelper.getObjectInstanceUsingObjectFactoryBuilders(ObjectFactoryHelper.java:336)
at org.apache.aries.jndi.ObjectFactoryHelper.doGetObjectInstance(ObjectFactoryHelper.java:136)
at org.apache.aries.jndi.ObjectFactoryHelper.access$000(ObjectFactoryHelper.java:60)
at org.apache.aries.jndi.ObjectFactoryHelper$1.run(ObjectFactoryHelper.java:98)
at java.security.AccessController.doPrivileged(AccessController.java:327)
at org.apache.aries.jndi.Utils.doPrivileged(Utils.java:146)
at org.apache.aries.jndi.ObjectFactoryHelper.getObjectInstance(ObjectFactoryHelper.java:96)
at org.apache.aries.jndi.OSGiObjectFactoryBuilder.getObjectInstance(OSGiObjectFactoryBuilder.java:57)
at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:349)
at com.ibm.ws.naming.util.Helpers.processSerializedObjectForLookupExt(Helpers.java:993)
... 89 more

这里说我的资源-引用必须是com.ibm.websphere.asynchbeans.WorkManagercommonj.work.WorkManager类型的。它们都不是从扩展的。

如果我将资源类型切换为commonj.work.WorkManager,并在我的应用程序中使用Spring org.springframework.scheduling.commonj.WorkManagerTaskExecutor,那么一切都正常。

要让一个JCA工作经理使用Websphere,我需要在服务器端配置一些特殊的东西吗?我没有在管理控制台中找到任何切换实现的设置。Websphere 8支持Java 6,因此它应该能够处理JCA。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-21 21:26:26

为什么要使用特定于JCA的WorkManagerTaskExecutor而不是通用的?JCA WorkManager只供资源适配器使用,而不是由任意EE组件引用,JCA特定的WorkManagerTaskExecutor的春季文献与此一致:

这主要用于JCA ResourceAdapter实现中。

只需使用commonj WorkManager和相应的WorkManagerTaskExecutor。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29140453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档