Я пытаюсь перенести приложение пользовательского интерфейса (которое использует реализацию commonj.Workmanager) из IBM Websphere в Apache Tomcat + HTTPD.Как часть приложения, в любое время, когда мы получаем сообщения в MQ, генерируется workItem, который планируется с помощью метода workManager.schedule (worker).Это работает, когда он выполняется как часть сервлета инициализации.Однако, когда новые сообщения поступают в очередь после запуска и запуска приложения, метод расписания просто принимает работу и не запускает рабочий поток.Не могли бы вы помочь?
Я попытался добавить WorkItems в список и заставить их ждать, однако поток не запустился, и приложение подождало, пока мне не пришлось его вручную убить.
Я также попытался посмотреть выходные данные wi.getResult () и workItem.getStatus ().Это привело к тому, что объект и статус работника равны 1. Работа не начинается, несмотря на долгое ожидание.
Я проверил, ждал ли он каких-либо других ресурсов, он не требует никаких других ресурсов.Workmanager используется для асинхронного выполнения с целью повышения производительности.
также не генерируются исключения.
WorkManager wm = ServiceLocator.getInstance().getWorkManager("wm/default");
VerifyWorker worker = null;
worker = new VerifyWorker();
try
{
WorkItem wi= wm.schedule(worker);
System.out.println("Result: " + wi.getResult());
System.out.println("Status::::: " + wi.getStatus());
} catch (WorkException e)
{
e.printStackTrace();
}
catch (IllegalArgumentException e)
{
e.printStackTrace();
}
}
catch (ServiceLocatorException e)
{
e.printStackTrace();
}
VerifyWorker.java реализует Work:
Это имеетметод run, имеющий бизнес-логику для этого рабочего потока.
Ожидается: должна быть выполнена логика в run () VerifyWorker.Фактически: метод run () не вызывается.Нет никаких исключений.Статус 1 (работа принята, но не начата)