как вызвать событие из службы в Ofbiz

Как вызвать событие (простой метод) для службы Ofbiz, написанной на Java.

есть способ? Я использую rest api для создания сотрудника в офисе, я создал оболочку для отдыха, а из контроллера отдыха я вызываю свои собственные службы и оттуда вызываю службы бизнеса, но некоторые процессы создания были написаны простыми методами.

Как я могу вызвать эти события, которые написаны простыми методами из Сервиса?


person Krishna    schedule 18.01.2017    source источник
comment
Вы хотите вызвать событие, написанное простым методом, или службу, написанную простым методом? Пожалуйста, дайте мне пример простого метода, который вы хотите вызвать.   -  person Michael Brohl    schedule 19.01.2017
comment
Я хочу вызвать событие, написанное простым методом, из службы, написанной на java.   -  person Krishna    schedule 20.01.2017


Ответы (2)


Для вызова простого метода у нас должно быть два объекта

  1. объект контекста отправки
  2. контекст карты

мы можем получить объект контекста отправки с помощью

GenericDispatcher dispatcher = (GenericDispatcher)request.getAttribute("dispatcher");
DispatchContext dctx =  dispatcher.getDispatchContext();

В методе/событии Java любая служба может быть вызвана

GenericDispatcher dispatcher = (GenericDispatcher) request.getAttribute("dispatcher");
dispatcher.runSync("SERVICE_NAME", context);

контекст представляет собой карту требуемых параметров IN/IN-OUT для службы. Эти параметры можно найти в webtool > Service Engine > щелкните SERVICE_NAME.

помни это

  1. runSync — который запускает службу синхронно и возвращает результат в виде карты.
  2. runSyncIgnore — синхронно запускает службу и игнорирует результат. Ничего не возвращается.
  3. runAsync — который запускает службу асинхронно. Опять ничего не возвращается.
person naib khan    schedule 27.02.2017
comment
Я хочу вызвать событие из Service. - person Krishna; 28.02.2017

Вызов простого метода из службы Java или события

SimpleMethod.runSimpleEvent("Simple method file Location", "methodName", request, response);

Чтобы получить объект запроса и ответа из службы, вы должны передать этот объект в качестве параметра службы, например

<attribute name="request" mode="IN" type="javax.servlet.http.HttpServletRequest"/>
<attribute name="response" mode="IN" type="javax.servlet.http.HttpServletResponse"/>

// Retrieving Request & Response object from context paramters 
HttpServletRequest request = (HttpServletRequest) context.get("request");
HttpServletResponse response = (HttpServletResponse) context.get("response");

// For this you can refer payPalProcessor service definition...
person ms74    schedule 17.03.2017