2012-08-03 33 views
3

我花了幾個小時試圖在「Apache Ofbiz Cookbook」和「Apache Ofbiz Development:初學者教程」中找到答案如何獲取DispatchContext從Java方法的Ofbiz中。 Ruth Hoffman的食譜不包括這個代碼,她只是說「準備任何上下文參數」第43頁。我可以理解在註冊服務或事件時如何獲得DispatchContext,但是如何從Java中執行此操作?謝謝。如何從Java程序中獲取Ofbiz中的DispatchContext

我試圖從Tomcat中的REST Web服務的服務器端填充Ofbiz中定義的Ofbiz實體/表。

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

在Java方法/事件,任何服務都可以調用用下面的代碼片斷:

GenericDelegator delegator = ctx.getDelegator(); 
    GenericValue myTable = delegator.makeValue("MyTable"); 
    myTable.set("name", myTableAsJson.getString("name")); 


    try { 
     delegator.store(offering); 
    } catch(Exception e) { 

    } 

回答

5

在Java方法/事件,dispatach上下文可以使用下面的代碼段中獲取

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

其中上下文是要求的輸入/輸出參數映射到服務。

要從Java方法/事件調用服務,不需要派遣上下文。只有服務名稱和上下文是必需的。

+0

甜!感謝你的回答。 – 2013-04-08 12:55:19

相關問題