我正在为使用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" />
中有一个值,但我不知道将其设置为什么,以便可以运行集成测试
有人可以帮我吗?
谢谢