59yq60581a 发表于 2016-6-9 12:20:04

JBOSS---ESB 序列之四 helloworld_ftp_action详细介绍

helloworld_ftp_action 展示了如何利用 FtpGateway 来 循环 监听 远程ftp服务器上特定目录下 指定后缀的文件的处理过程
这对一些以在远程ftp服务器上以文件为接口方式的集成,特别有用

1. Esb 配置文件

<?xml version = "1.0" encoding = "UTF-8"?>
<jbossesb xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.1.0.xsd" parameterReloadSecs="5">

    <providers>
          <ftp-provider name="FTPprovider" hostname="15.154.146.107" >
          <ftp-bus busid="helloFTPChannel" >
          <ftp-message-filter
          username="bea"
          password="bea123"
          passive="false"
          directory="/home/bea/test"
          input-suffix=".dat"
          work-suffix=".esbWorking"
          post-delete="false"
          post-rename="true"
post-directory="/home/bea/test/done"
          post-suffix=".COMPLETE"
          error-delete="false"
          error-suffix=".HAS_ERROR"
          />
          </ftp-bus>
          </ftp-provider>
         
          <jms-provider name="JBossMQ" connection-factory="ConnectionFactory">
            
    <jms-bus busid="quickstartEsbChannel">
      <jms-message-filter
            dest-type="QUEUE"
            dest-name="queue/quickstart_helloworld_ftp_esb"
            selector="source='fromHelloworldFTPAction'"
      />
    </jms-bus>

   </jms-provider>

<schedule-provider name="cronExample">
<cron-schedule scheduleid="cron-schedule" cronExpression="0/10 * * * * ?"/>
</schedule-provider>

      </providers>
      
      <services>
      <service
category="myCategory"
name="myFileListener"
      description="Hello World File Action (esb listener)" >
            <listeners>
            <ftp-listener name="FtpGateway"
            busidref="helloFTPChannel"
            is-gateway="true"
            scheduleidref="cron-schedule"/>
                <jms-listener name="helloWorldFileAction"
                              busidref="quickstartEsbChannel"
                />
            </listeners>
            <actions mep="OneWay">
                   <action name="action1"
                   class="org.jboss.soa.esb.samples.quickstart.helloworldftpaction.MyAction"
                   process="displayMessage,playWithMessage"
                   />      
            </actions>
      </service>
      </services>
   
</jbossesb>

2. 需要定义三个providers
1. ftp-provider       提供ftp功能
2. jms-provider       提供jms消息队列
3. schedule-provider指定调度频率

3. 需要定义两个listeners
1. ftp 网关监听器
2. jms-bus 监听器

4. action 只是打印文件的内容
页: [1]
查看完整版本: JBOSS---ESB 序列之四 helloworld_ftp_action详细介绍