0

我正在尝试编写一个 BPEL 流程来监视本地目录的文件到达,并对该文件执行某些操作。我使用 Jboss EAP 6.4 作为服务器,使用 Switchyard 作为我的 BPEL 运行时,使用 Jboss Developer Studio 作为我的 IDE。总的来说,我对 BPEL 和 Web 服务非常陌生。在过去的几周里,我一直试图了解我需要做什么,但无济于事。我最初的想法是创建一个 java web 服务来监视目录,然后让它调用一个 BPEL 流程来对文件执行某些操作。我想知道我是否需要一个服务来完成它,或者你是否可以在 BPEL 本身内完成它。我将使用 BPEL 来调用将使用该文件的服务。任何帮助将非常感激。

4

1 回答 1

0

BPEL 具有触发给定处理的事件概念。有计时器、警报和传入消息。传入消息的作用类似于常用编程语言中的 switch 语句。

因此,您不能在 BPEL 流程中直接监听文件系统。您需要做的是创建一个侦听器(使用您想要的任何语言)并在出现新文件时调用您的 BPEL 流程。BPEL 只是关于将调用链接到 Web 服务。或者,如果您愿意,BPEL 只是一种实现 Web 服务的方法,它在其他 Web 服务之间建立了粘合剂。BPEL 流程背后的逻辑只是关于创建、转换和路由消息到正确的“接收者”。除了将文件(名称、引用、内容...)传递给其他 Web 服务之外,您的 BPEL 流程将无法做更多事情。如果文件内容是 XML,您可能会对其内容执行一些操作(感谢 XPath),但我不知道它是否是您的用例。

查看 Switchyard,我看到他们使用 Apache Camel。所以,我想你必须能够配置 Camel 组件来实现你想要的。他们提供的编辑器看起来像 Eclipse.org 上的 SCA 编辑器。我不知道这个解决方案,但我会尝试在这个编辑器中创建一个组件,有一个带有“文件”绑定的引用(一个调用入口点),然后看看我们可以对这个调用做些什么。我怀疑 Switchyard 能够“生成”侦听器和出现新文件时调用的进程。但在这种情况下,我们不再真正在做 BPEL。它超越了。

于 2015-12-29T17:53:25.747 回答