2

我想使用 Websphere 工作管理器在 jee 上下文中执行异步作业,但我在创建 spring WorkManager 时遇到问题。

豆定义:

<bean id="taskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">     <property name="workManagerName" value="wm/default" /> </bean>

我在 websphere 帮助中找到了这个定义。但问题是这以 noClassDefFound 结束。我注意到org.springframework.scheduling.commonj自 2.xx 版以来 spring-context 中缺少pckg

它被替换为org.springframework.jca.work.WorkManagerTaskExecutor?

当我使用这个其他弹簧类时,我得到错误:

原因:org.springframework.jndi.TypeMismatchNamingException:JNDI 位置 [wm/default] 上可用的类型 [class com.ibm.ws.asynchbeans.WorkManagerImpl] 的对象不可分配给 [javax.resource.spi.work.WorkManager]

所以这里有什么交易?谢谢

是 - 7.0.0.23 春天 - 3.1.2

4

3 回答 3

4

org.springframework.scheduling.commonj.WorkManagerTaskExecutor驻留在spring-context-support-3.1.2.RELEASE.jar

于 2013-11-18T16:30:37.320 回答
0

javax.resource.spi.work.WorkManager在部署中配置成功applicationContext-service.xml.....

在我的情况下,bean 注入部署失败,org.springframework.scheduling.commonj.WorkManagerTaskExecutor因为它无法采用在 Application Server 中配置的 WorkManager JNDI .... 我刚刚替换了javax.resource.spi.work.WorkManager. 到目前为止,它是成功部署。

我还没有看到应用程序可以正常工作。

<bean id="taskExecutor" class="javax.resource.spi.work.WorkManager">
    <property name="workManagerName" value="wm/default" /> 
</bean>
于 2015-06-04T07:41:59.033 回答
0

在我们的场景中,我们由ThreadPoolTask​​Executor而不是WorkManagerTaskExecutor管理它

这是进来的配置ApplicationContext.xml

<!-- 
<bean id="rtSenderTaskExecutor"
    class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
    <property name="workManagerName">
        <value>${org.quartz.threadPool.jndi}</value>
    </property>
</bean> -->

<!-- Local Thread Pool -->    
<bean id="rtSenderTaskExecutor"
    class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
    <property name="corePoolSize" value="${org.quartz.threadPool.corePoolSize}" />
    <property name="maxPoolSize" value="${org.quartz.threadPool.maxPoolSize}" />
    <property name="queueCapacity" value="${org.quartz.threadPool.queueCapacity}" />
    <property name="keepAliveSeconds" value="${org.quartz.threadPool.keepAliveSeconds}"></property>
</bean>
于 2015-06-19T05:33:18.253 回答