Как назвать событие из Сервиса в Офбиз
Как вызвать Event(простой метод) для сервиса Ofbiz, написанный на Java.
есть ли способ? Я использую api rest для создания сотрудника в ofbiz, я создал оболочку для отдыха и из контроллера rest я вызываю собственные службы, а оттуда вызываю службы ofbiz, но некоторые процессы создания были написаны простыми методами.
Как я могу назвать эти события, которые написаны простыми методами из Сервиса?
2 ответа
Вызов простого метода из службы 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...
Для вызова простого метода у нас должно быть два объекта
- объект контекста отправки
- контекст карты
мы можем получить объект Context для отправки
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
помни это
- runSync - который запускает службу синхронно и возвращает результат в виде карты.
- runSyncIgnore - который запускает службу синхронно и игнорирует результат. Ничего не передается обратно.
- runAsync - который запускает службу асинхронно. Опять же, ничего не передается обратно.