Spring WorkManagerTaskExecutor无法在websphere中初始化
我想使用Websphere work manager在jee上下文中执行异步作业,但在创建spring WorkManager时遇到问题 bean定义:Spring WorkManagerTaskExecutor无法在websphere中初始化,spring,websphere,workmanagers,commonj,Spring,Websphere,Workmanagers,Commonj,我想使用Websphere work manager在jee上下文中执行异步作业,但在创建spring WorkManager时遇到问题 bean定义: <bean id="taskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor"> <property name="workManagerName" value="wm/default" /> </b
<bean id="taskExecutor" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor"> <property name="workManagerName" value="wm/default" /> </bean>
我在websphere帮助中找到了这个定义。但问题是这一切都以noClassDefFound结束。我注意到自2.x.x版以来,spring上下文中缺少了pckgorg.springframework.scheduling.commonj
是否将其替换为org.springframework.jca.work.WorkManagerTaskExecutor
当我使用另一个spring类时,我得到一个错误:
原因:org.springframework.jndi.typemistchnamingexception:
类型为[class com.ibm.ws.asynchbeans.WorkManagerImpl]的对象
JNDI位置可用[wm/default]不可分配给
[javax.resource.spi.work.WorkManager]
那么这里有什么交易?thx
was-7.0.0.23
spring-3.1.2类
org.springframework.scheduling.commonj.WorkManagerTaskExecutor
驻留在spring-context-support-3.1.2.RELEASE.jar
类org.springframework.scheduling.commonj.WorkManagerTaskExecutor
驻留在spring-context-support-3.1.2.RELEASE.jar配置成功使用部署中applicationContext service.xml
中的javax.resource.spi.work.WorkManager
在我的例子中,bean注入部署失败org.springframework.scheduling.commonj.WorkManagerTaskExecutor
,因为它无法获取在应用服务器中配置的WorkManager JNDI。。。。我刚刚替换了javax.resource.spi.work.WorkManager
。到目前为止,这是成功的部署
我还没有看到应用程序可以很好地与它配合使用
<bean id="taskExecutor" class="javax.resource.spi.work.WorkManager">
<property name="workManagerName" value="wm/default" />
</bean>
在部署中的applicationContext service.xml
中的javax.resource.spi.work.WorkManager
配置成功
在我的例子中,bean注入部署失败org.springframework.scheduling.commonj.WorkManagerTaskExecutor
,因为它无法获取在应用服务器中配置的WorkManager JNDI。。。。我刚刚替换了javax.resource.spi.work.WorkManager
。到目前为止,这是成功的部署
我还没有看到应用程序可以很好地与它配合使用
<bean id="taskExecutor" class="javax.resource.spi.work.WorkManager">
<property name="workManagerName" value="wm/default" />
</bean>
在我们的场景中,我们由ThreadPoolTaskExecutor而不是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>
在我们的场景中,我们由ThreadPoolTaskExecutor而不是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>
据我所知,该类仍然存在于spring上下文支持
jar中。据我所知,该类仍然存在于spring上下文支持
jar中。我的错,我在maven中使用了spring上下文。我的错,我在maven中使用了spring上下文。javax.resource.spi.work.work.WorkManager
是一个接口。因为它是一个接口,所以没有成功。相反,我们可以使用org.springframework.jca.work.jboss.JBossWorkManagerTaskExecutor
,它在Spring 2.5
以后的版本中受支持。在我的例子中,它是jboss。。。。摘自Spring2.5Javadoc。。。。注意:在撰写本文时,CommonJ WorkManager
工具仅在IBMWebSphere 6.0+
和BEAWebLogic 9.0+
上受支持,尽管它是应用服务器的关键API。(在WebSphere5.1Enterprise
上有一个类似的工具,我们将在下面讨论。)在JBoss和GlassFish上,可以通过JCA WorkManager获得一个类似的工具。请参阅JBossWorkManagerTaskExecutor
GlassFishWorkManagerTaskExecutor类
,这些类直接等效于此CommonJ适配器类。。。我发现这一点:在即将推出的兼容EE7的WebLogic和WebSphere版本中,应该首选DefaultManagedTaskExecutor,遵循JavaEE7中的JSR-236支持。javax.resource.spi.work.WorkManager
是一个接口。因为它是一个接口,所以没有成功。相反,我们可以使用org.springframework.jca.work.jboss.JBossWorkManagerTaskExecutor
,它在Spring 2.5
以后的版本中受支持。在我的例子中,它是jboss。。。。摘自Spring2.5Javadoc。。。。注意:在撰写本文时,CommonJ WorkManager
工具仅在IBMWebSphere 6.0+
和BEAWebLogic 9.0+
上受支持,尽管它是应用服务器的关键API。(在WebSphere5.1Enterprise
上有一个类似的工具,我们将在下面讨论。)在JBoss和GlassFish上,可以通过JCA WorkManager获得一个类似的工具。请参阅JBossWorkManagerTaskExecutor
GlassFishWorkManagerTaskExecutor类
,这些类直接等效于此CommonJ适配器类。。。我发现这一点:在即将推出的兼容EE7的WebLogic和WebSphere版本中,应该首选DefaultManagedTaskExecutor,这是在JavaEE7中支持JSR-236之后。