用于集成测试的WorkManager

时间:2020-05-14 00:41:15

标签: java spring javabeans

我正在为使用WorkManager实现并行性的应用程序编写集成测试。 Bean定义为:

<bean id="EOSCommonjAggregator" class="my.CommonjAggregator" scope="prototype">
    <property name="workmanager">
        <ref bean="CommonJWorkManager" />
    </property>
</bean>

<bean id="CommonJWorkManager" class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor" scope="singleton">
    <property name="workManagerName" value="java:jboss/wm/WM" />
    <property name="resourceRef" value="false" />
</bean>

我的集成测试定义为

@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(SpringJUnit4ClassRunner.class)
@PowerMockIgnore({"javax.net.ssl.*", "com.mapr.security.*", "org.springframework.scheduling.commonj.*", "my.CommonjAggregator"})
@ContextConfiguration(locations = "classpath:xml/spring_context.xml")
public class IT {
    @Autowired
    private Util util;  
    @Test
    public void someTest() throws EOMDatabaseException {
        util.method();
    }
}

启动正常。然后到达代码行,在其中创建新的WorkItem

WorkItem workitem = workmanager.schedule(new CommonjWork(task));

并抛出ClassCastException

java.lang.ClassCastException: my.ImplClass cannot be cast to my.commonj.util.CallableThread

我注意到bean xml <property name="workManagerName" value="java:jboss/wm/WM" />中有一个值,但我不知道将其设置为什么,以便可以运行集成测试

有人可以帮我吗?

谢谢

0 个答案:

没有答案
相关问题