如何从Java程序获取Ofbiz中的DispatchContext
我花了几个小时试图在“ApacheObiz食谱”和“ApacheObiz开发:初学者教程”中找到答案,如何从Java方法获取Obiz中的DispatchContext。露丝·霍夫曼的食谱中没有这段代码,她只是说“准备任何上下文参数”,第43页。我可以理解在注册服务或事件时如何获得DispatchContext,但如何从Java获得它?谢谢 我试图从Tomcat中REST web服务的服务器端填充我在Ofbiz中定义的Ofbiz实体/表如何从Java程序获取Ofbiz中的DispatchContext,java,ofbiz,Java,Ofbiz,我花了几个小时试图在“ApacheObiz食谱”和“ApacheObiz开发:初学者教程”中找到答案,如何从Java方法获取Obiz中的DispatchContext。露丝·霍夫曼的食谱中没有这段代码,她只是说“准备任何上下文参数”,第43页。我可以理解在注册服务或事件时如何获得DispatchContext,但如何从Java获得它?谢谢 我试图从Tomcat中REST web服务的服务器端填充我在Ofbiz中定义的Ofbiz实体/表 GenericDelegator delegator
GenericDelegator delegator = ctx.getDelegator();
GenericValue myTable = delegator.makeValue("MyTable");
myTable.set("name", myTableAsJson.getString("name"));
try {
delegator.store(offering);
} catch(Exception e) {
}
在Java方法/事件中,可以使用以下代码段获取dispatach上下文:
GenericDispatcher dispatcher = (GenericDispatcher) request.getAttribute("dispatcher");
DispatchContext dctx = dispatcher.getDispatchContext();
GenericDispatcher dispatcher = (GenericDispatcher) request.getAttribute("dispatcher");
dispatcher.runSync("SERVICE_NAME", context);
在Java方法/事件中,可以使用以下代码段调用任何服务:
GenericDispatcher dispatcher = (GenericDispatcher) request.getAttribute("dispatcher");
DispatchContext dctx = dispatcher.getDispatchContext();
GenericDispatcher dispatcher = (GenericDispatcher) request.getAttribute("dispatcher");
dispatcher.runSync("SERVICE_NAME", context);
其中,上下文是所需输入/输出参数到服务的映射
要从Java方法/事件调用服务,不需要paas调度上下文。只需要服务名称和上下文。此方法不再有效。来自控制器的HttpServletRequest仍然有一个属性“dispatcher”,但您现在必须将其强制转换为LocalDispatcher类,然后使用该属性获取DispatcheContext 这来自OFBiz维修引擎文档[1]: “服务框架的内部使用非常简单。在Web应用程序中,LocalDispatcher存储在ServletContext中,可通过事件中的会话对象访问该上下文。” 这对我很有用:
Delegator delegator = (Delegator) request.getAttribute("delegator");
LocalDispatcher ld = (LocalDispatcher) request.getAttribute("dispatcher");
DispatchContext dctx = ld.getDispatchContext();
[1]