读书人

JBoss ESB开发实践及札记

发布时间: 2014-05-11 16:36:51 作者: rapoo

JBoss ESB开发实践及笔记

基于JBoss的ESB开发网上中文资料很少,这几天因为工作的需要,研究了一下,希望用得着的朋友一起来讨论下!

?

必读资料:《JBoss SOA P 4.3.GA.ESB.Programmers_Guide.pdf》

如果要使用规则引擎,你还需要参考:《JBoss SOA P 4.3.GA.Rules_Reference_Guide.pdf》

?

分享的条目:

System.setProperty("javax.xml.registry.ConnectionFactoryClass","org.apache.ws.scout.registry.ConnectionFactoryImpl");String[] args = new String[]{"FirstServiceESB", "SimpleListener", "我是中文!hello world esb invoked"};Message esbMessage = MessageFactory.getInstance().getMessage();esbMessage.getBody().add(args[2]); new ServiceInvoker(args[0], args[1]).deliverAsync(esbMessage);在ESB服务的编写中可能会遇到的主要问题:
消息过滤,在jboss-esb.xml中类似的配置代码如下:
<service         category="FirstServiceESB"         name="MessageFilterListener"         description="Filter a Message Based on Content">            <listeners>                <jms-listener name="gw-channel"                    busidref="quickstartGwChannel"                    is-gateway="true"                />                <jms-listener name="esb-channel"                              busidref="quickstartEsbChannel"                />            </listeners>            <actions mep="OneWay">                <action name="MessageFilter">                    <property name="ruleSet" value="FilterRules.drl"/>                    <property name="ruleReload" value="true"/>                    <property name="destinations">                        <route-to destination-name="DemoDestination" service-category="Test" service-name="NextService"/>                    </property>                     <property name="object-paths">                    <object-path esb="body.'org.jboss.soa.esb.message.defaultEntry'" />                    </property>                </action>            </actions>        </service>
?路由,在Action中可定义静态路由和动态路由(基于内容的规则引擎实现),其中静态路由的可能的配置代码如下:
<action name="srouteAction" service-name="TwoSimpleListener"/>       </property></action>
?你可能还需要处理通知,利用通知引擎来做些事情,比如当服务处理异常时,用邮件通知我,你可能的配置代码如下:
<property name="notification-details">      <NotificationList type="err">       <target from="allan119119@sina.com" sendTo="faqee@126.com" subject="message test" message="can resv?" >          <attachment>c:\crm.log</attachment>       </target>      </NotificationList>      <NotificationList type="ok">       <target class="NotifyConsole"/>      </NotificationList></property>
?你可能还需要处理些被动的侦听服务,那么你可以使用Schedule,支持Cron表达式,比如侦听文件服务器上的文件变动或文件内容变动等。?

读书人网 >操作系统

热点推荐