2017-02-22 17 views
0

Мы развернули commonj workmanager rar в jboss EAP 6.4.9.GA и jdk 1.7. Мы используем ссылку workmanager для создания нескольких потоков в случае загрузки нескольких файлов. У нас есть настройка по умолчанию для рабочего менеджера с 50 значением для максимальных потоков, основных потоков, длины очереди. Мы определили зависимость весной XML, какcommonj workmanager в потоках jboss не ждет завершения

<bean id="taskExecutor" 
class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor"> 
<property name="workManagerName" value="java:jboss/wm/default-work-manager" /> 
<property name="resourceRef" value="false"/> 
</bean> 

В классе заклинателя, представив работу

@Component 
public class RealtimeServiceInvoker 
@Autowired 
private WorkManagerTaskExecutor taskExecutor; 
public Response execute(..).... 
for(FileBean fileBean:fileList){ 
      SampleWork work = new SampleWork(); 
      work.setFileBean(fileBean); 
      colWorkItems.add(taskExecutor.schedule(work)); 
      requestList.add(work); 
     } 

     taskExecutor.waitForAll(colWorkItems, WorkManager.INDEFINITE); 

Что я вижу это taskexecutor не ждет задачи, которые должны быть завершены, и в течение следующего шаг, мы пытаемся извлечь результат из объекта Work, и это исключение исключения

То, что озадачивает то же самое, работает на локальном сервере с сервером jboss 6.2 и jdk 1.7.

Не могли бы вы сообщить, что может быть неправильным?

Я добавил WorkListener также

taskExecutor.schedule(work,rtWorkListener); 

Я получаю журналы в Listener для workAccepted и WorkStarted. Рабочий менеджер не ждет завершения потока. Если какой-либо альтернативный способ реализовать ожидание завершения потоков с помощью Listener?

ответ

0

Я попытался установить обычный рабочий стол на сервере jboss, и он работал. Возможно, это была старая версия рабочего менеджера на сервере. Но поведение было странным.