2016-10-12 49 views
1

我想創建一些新的REST資源。例如列出工作流程中所有下一個可能的任務。Actiiviti業務流程引擎:擴展REST api

我想創建自己的戰爭,可以部署在Glassfish 4.(payara)。

我需要些什麼?我如何創建新的端點網址?

回答

0

Activiti REST應用程序是使用Spring MVC編寫的。默認情況下,組件掃描org.activiti.rest.service.api(請參閱https://github.com/Activiti/Activiti/blob/master/modules/activiti-rest/src/test/java/org/activiti/rest/DispatcherServletConfiguration.java#L25)。因此,如果您將具有適當Spring MVC註釋的自定義類放在同一個包中,則可以使用自定義端點來實現您想要的內容。

不需要爲此更改war文件,只需確保新類位於應用程序的類路徑中即可。

+0

這意味着我可以在與activitii源相同的包下創建一個類包,並將其放置在其餘的戰爭和部署中。 – rangalo

+0

我的資源也會像普通活動資源一樣受到保護嗎? – rangalo

+0

您的Rest端點受到SecurityConfiguration類中的配置的保護。您可以從此配置類中管理任何Rest端點的保護級別。 –

0

Activiti只是一個jar而社區已經提供了很多API來解決它。但你可以使用Spring在activiti上編寫自己的邏輯。基本上它使用DB來處理/傳輸任何其他工作流將執行的狀態。所以首先提供一個數據庫並在其中填充必要的模式/表格。接下來選擇您的用戶界面(我強烈建議AngularJS是最近使用最多的框架之一)。將您的架構定義爲您的用戶界面將如何與Activiti進行交互。要注意,它會採取大量的時間

0

Rangalo,

下面是一個示例REST端點爲您服務。

package com.bp3.tupac.rest; 

import com.bp3.tupac.service.ServiceException; 
import com.bp3.tupac.service.InfoService; 
import org.springframework.http.MediaType; 
import org.springframework.web.bind.annotation.RequestMapping; 
import org.springframework.web.bind.annotation.RequestMethod; 
import org.springframework.web.bind.annotation.RestController; 

@RestController 
@RequestMapping(value = "/tupac") 
public class VersionRestController { 

    /** 
    * @return Some stuff 
    * @throws ServiceException 
    */ 
    @RequestMapping(value = "/info", 
     produces = MediaType.APPLICATION_JSON_VALUE, 
     method = RequestMethod.GET 
    ) 
    public InfoService.Info getTupacInfo() throws ServiceException { 
     try { 
      return new InfoService().getTupacInfo(); 
     } catch (Exception e) { 
      throw new ServiceException("Failure getting Tupac info....dog", e); 
     } 
    } 
} 

現在,您需要確保您的應用程序配置已設置爲在組件掃描中包含此程序包。 爲此,請將程序包添加到DispatcherServletConfiguration類中的組件掃描指令中。

@Configuration 
@ComponentScan(existing packages, "com.bp3.tupac.rest"}) 

之後,你應該能夠調用路徑:http://host:port/context/tupac/info

,並找出是誰殺圖帕克。

希望這會有所幫助。 Greg