график commonj.work.WorkManager принимает только работу и не запускает ее - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь перенести приложение пользовательского интерфейса (которое использует реализацию 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 (работа принята, но не начата)

...