工作流机制,在春季启动或Spring的异常和错误处理场景

问题描述 投票:0回答:2

我的设计工作,其中要求如下

  1. 该应用程序将使用弹簧启动建
  2. 随着需求的一部分,我们将不得不建立一些业务流程,我们最终会调用多个SOAP和REST服务,我们会进行汇总,转换等。
  3. 当业务流程过程中出现异常/错误,我们需要捕获和持续状态,并从发生错误的相同点重试。

例如,让我们说存在其中我们有多个呼叫的Java方法到外部部件说1块肥皂呼叫和2其余调用即

String doOrchestration(InputObject obj){

    Line 1: Object obj = soap call[ input is XML format];

    Line 2: Object obj1 = rest1 call [the input is obj in JSON  format]

    Line 3: Object obj3 = rest2 call[the input is obj1 in JOSN  format]

    //do something
    return str

}

线路2上我们需要捕获/持续状态,并继续从后来的2号线执行时发生错误。

是否有任何的工作流程库,编排模式和/或框架,我们可以用弹簧/弹簧启动整合

谢谢,

java spring-boot error-handling custom-error-handling
2个回答
0
投票

好了,我在你的要求用来处理这类问题是Apache的骆驼,蒙山骆驼可以设置路线,例如一个TECNOLOGY,你可以建立谁将会orchest其他途径,如您端点的主要途径,如果一个端点有一个例外,你可以叫谁将会持续这一点,再次调用端点的路线,或类似的东西的路线。

http://camel.apache.org/getting-started.html

编辑:骆驼有很大的潜力转化消息,如JSON,XML对象。

我有弹簧引导和骆驼github上一个非常简单的项目,如果你想检查一下。

https://github.com/chill-hub/spring_boot_camel_base_archetype


0
投票

Apache的骆驼版本春风似在https://spring.io/projects/spring-integration弹簧集成

Apache的骆驼和Spring的集成实现了所谓的EIP企业集成模式。请https://www.enterpriseintegrationpatterns.com/先看看。它基本上是设计模式的工作流程和业务流程!

您有弹簧命名弹簧引导启动整合由弹簧启动的集成(首发)。

你或许应该看看在https://github.com/spring-projects/spring-integration-java-dsl/wiki/spring-integration-java-dsl-reference的Java Spring配置DSL参考,这将告诉你一个很好的概述,用更现代的方法(XML和注释开始disapear)。

你需要做什么,你可能会需要https://docs.spring.io/spring-integration/reference/html/ws.html这是网络扩展Spring集成。

要小心,这是一个非常优雅的解决方案,但有很多抽象的,可以在开始时很困难。请记住EIP定义积木和词汇建立工作流程,Apache的骆驼和Spring集成是实现这些构建模块,并提供了线程模型的抽象(也排队持续性的抽象)的框架,并且都具有几个扩展很容易适应这些积木现实世界(网络,LDAP,数据库,...)

这两个框架是用好利弊,但你可能会更喜欢春天整合弹簧ecosysteme队,同约定以外的弹簧组件!

再次论文框架是真正优雅,但抽象始终成本!

免责声明:我是春天一体化进程教练 - 官方

热门问题
推荐问题
最新问题