我正在尝试编写一个BPEL流程来监视文件到达的本地目录,并使用该文件执行某些操作。我使用Jboss EAP 6.4作为我的服务器,使用Switchyard作为我的BPEL运行时,使用Jboss Developer Studio作为我的IDE。我对BPEL和Web服务一般都是新手。我花了几周的时间试图了解我需要做什么,但无济于事。我最初的想法是创建一个java Web服务来监视目录,然后让它调用BPEL流程来对文件做某些事情。我想知道我是否需要服务来做这件事,或者你是否可以在BPEL内部做到这一点。我将使用BPEL来调用将使用该文件的服务。任何帮助将非常感激。
答案 0 :(得分:0)
BPEL具有触发给定处理的事件概念。有计时器,警报和传入消息。传入的消息就像通常的编程语言中的switch语句一样。
因此,您无法直接在BPEL流程中侦听文件系统。您需要做的是创建一个监听器(使用您想要的任何语言),并在出现新文件时调用您的BPEL流程。 BPEL仅关于将调用链接到Web服务。或者如果您愿意,BPEL只是实现Web服务的一种方式,可以在其他Web服务之间建立粘合剂。 BPEL流程背后的逻辑只是创建,转换和路由消息给正确的接收者"。除了将文件(名称,引用,内容......)传递给其他Web服务之外,您的BPEL流程将无法执行更多操作。如果文件内容是XML,您可以对其内容执行一些操作(感谢XPath),但我不知道它是否是您的用例。
看看Switchyard,我看到他们使用的是Apache Camel。 所以,我想你必须能够配置Camel组件来实现你想要的。他们提供的编辑器看起来像Eclipse.org上的SCA编辑器。我不知道这个解决方案,但我会尝试在这个编辑器中创建一个组件,有一个引用(一个调用入口点)和"文件"绑定,看看我们可以做什么这个调用。我怀疑Switchyard能够"生成"监听器和出现新文件时调用的进程。但在这种情况下,我们不再真正在做BPEL了。它超越了。