Jakarta ee activiviti业务流程引擎:扩展restapi
我想创建一些新的REST资源。例如,列出工作流上所有下一个可能的任务 我想创建我自己的战争,可以部署在Glassfish 4中。(帕亚拉)Jakarta ee activiviti业务流程引擎:扩展restapi,jakarta-ee,activiti,Jakarta Ee,Activiti,我想创建一些新的REST资源。例如,列出工作流上所有下一个可能的任务 我想创建我自己的战争,可以部署在Glassfish 4中。(帕亚拉) 我需要什么部门?如何创建新的端点URL Activiti REST应用程序是使用Spring MVC编写的。默认情况下,对org.activiti.rest.service.api进行组件扫描(请参阅) 因此,如果在同一个包中放置一个具有适当Spring MVC注释的自定义类,那么就有了一个自定义端点,可以在其中实现所需的内容 无需为此更改war文件,只需确
我需要什么部门?如何创建新的端点URL Activiti REST应用程序是使用Spring MVC编写的。默认情况下,对org.activiti.rest.service.api进行组件扫描(请参阅) 因此,如果在同一个包中放置一个具有适当Spring MVC注释的自定义类,那么就有了一个自定义端点,可以在其中实现所需的内容
无需为此更改war文件,只需确保新类位于应用程序的类路径上。Activiti REST应用程序是使用Spring MVC编写的。默认情况下,对org.activiti.rest.service.api进行组件扫描(请参阅) 因此,如果在同一个包中放置一个具有适当Spring MVC注释的自定义类,那么就有了一个自定义端点,可以在其中实现所需的内容
没有必要为此更改war文件,您只需确保新类位于应用程序的类路径上。Activiti只是一个jar,社区提供了许多API来解决它。但是,您可以使用Spring编写自己关于activiti的逻辑。基本上,它使用DB来处理/传输任何其他工作流都会执行的状态。因此,首先提供一个数据库,并在其中填充必要的模式/表。接下来选择您的UI(我强烈建议AngularJS成为当今最常用的框架之一)。将您的架构定义为您的UI将如何与Activiti交互。注意,这需要花费大量的时间。Activiti只是一个罐子,社区已经提供了很多API来解决这个问题。但是,您可以使用Spring编写自己关于activiti的逻辑。基本上,它使用DB来处理/传输任何其他工作流都会执行的状态。因此,首先提供一个数据库,并在其中填充必要的模式/表。接下来选择您的UI(我强烈建议AngularJS成为当今最常用的框架之一)。将您的架构定义为您的UI将如何与Activiti交互。小心,这要花很多时间 下面是一个示例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类中的component scan指令中
@Configuration
@ComponentScan(existing packages, "com.bp3.tupac.rest"})
之后,您应该能够调用路径:
找出是谁杀了图帕克
希望这有帮助。
格雷格兰加洛
下面是一个示例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类中的component scan指令中
@Configuration
@ComponentScan(existing packages, "com.bp3.tupac.rest"})
之后,您应该能够调用路径:
找出是谁杀了图帕克
希望这有帮助。
Greg这意味着我可以创建一个jar包,其中一个类与activitii source位于同一个包下,并将其放入rest war中进行部署。我的资源是否也会像普通activiti资源一样受到保护?您的rest端点受SecurityConfiguration类中配置的保护。您可以从此配置类管理任何Rest端点的保护级别。所谓保护,我指的是默认的activiti角色和权限。我不想为我的资源再次实现它。如果您使用相同的url模式/service/xxx,那么是的。否则,您需要添加一些配置,如Greg提到的。这意味着我可以创建一个jar包,其中一个类与activitii source位于同一个包下,并将其放入rest war中并进行部署。我的资源是否也会像一般activiti资源一样受到保护?您的rest端点受SecurityConfiguration类。您可以从此配置类管理任何Rest端点的保护级别。所谓保护,我指的是默认的activiti角色和权限。我不想为我的资源再次实现它。如果您使用相同的url模式/service/xxx,那么是的。否则,您需要添加一些配置,如Greg提到的。