首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在spring reactive项目中集成camunda webapp

在spring reactive项目中集成camunda webapp
EN

Stack Overflow用户
提问于 2019-05-04 00:54:16
回答 2查看 710关注 0票数 1

是否可以将camunda-bpm- spring - boot -starter-webapp & camunda-bpm-spring-boot-starter-rest集成到spring boot reactive项目中?

我已经尝试简单地集成这些包。但在运行该项目时,我发现只有springMVC模式被激活,并消除了在reactive模式下定义的所有路由器。spring MVC是通过Tomcat启动的。但是,反应式模式是使用netty (一个非servlet服务器)配置的。我尝试将Tomcat排除为仅依赖netty,但我不明白如何为其配置servlet。或者是否有可能同时存在两种模式?

我希望能够看到camunda webapp和应用程序路由一起运行。我现在只有一种模式可以激活: If SpringMVC : webapp OK,Routes NOK If Reactive : webapp NOK,Routes OK

EN

回答 2

Stack Overflow用户

发布于 2019-10-04 16:36:50

解决方法是使用tomcat而不是netty作为web服务器,因为它可以处理"Spring WebFlux和Spring MVC“

添加到gradle文件中

代码语言:javascript
运行
复制
compile 'org.apache.tomcat.embed:tomcat-embed-core'

然后使用在httpServlet中注册路由功能的ServletRegistrationBean

代码语言:javascript
运行
复制
@Bean
public ServletRegistrationBean routerToServlet() {
    RouterFunction<?> route = routingFunction();
    HttpHandler httpHandler = toHttpHandler(route);
    ServletHttpHandlerAdapter servlet = new ServletHttpHandlerAdapter(httpHandler);
    ServletRegistrationBean bean = new ServletRegistrationBean<>(servlet, "/core/*");
    bean.setLoadOnStartup(1);
    return bean;
}

您的routingFunction()是WebFlux Routes,因此您有Camunda webapp OK和Routes OK

票数 2
EN

Stack Overflow用户

发布于 2019-05-05 15:53:04

Spring documentation声明

Spring和

这两个web框架都映射了它们的源模块的名称(spring-webmvc和spring-webflux),并且在Spring框架中并排共存。每个模块都是可选的。应用程序可以使用一个或另一个模块,或者在某些情况下,使用两个模块,例如,带有反应式WebClient的Spring MVC控制器。

该项目使用Webflux,而Camunda webapps使用MVC。他们使用MVC是因为camunda-spring-boot-starter会自动将webapp配置为Spring MVC webapp (参见CamundaBpmWebappAutoConfiguration)。

也许有可能有另一个CamundaBpmWebappAutoConfiguration类,一个在Webflux模式下加载并实现WebFluxConfigurer的类?你觉得值得一试吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55974200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档