Mule+Spring+jbpm
法一:完全在spring.xml裡面配置mule的所有內容
該方法的缺點的是配置umo比mule語法更加繁瑣
法二:兩個配置分件都用,不過mule裡面需要加入一些mule-spring的標記
其本質是將mule.xml轉換成法一中的spring.xml
該方法比較適合在現有的spring應用中,加入mule
法三:在mule server的container內啟動spring,各自用自己的配置檔案格式,適用於以mule server為主,spring為輔的應用
假設有兩個bean,restaurantWaiter和kitchenService,前者作為UMO來接收訊息,然後呼叫service
1 spring-context.xml
2 mule.xml
inboundEndpoint="vm://order.queue"
implementation="restaurantWaiter">
為了讓Mule能夠識別restaurantWaiter,需要配置
....
....
Spring+jbpm+mule 三者是可以完美結合的
org.hsqldb.jdbcDriver
jdbc:hsqldb:mem:.;sql.enforce_strict_size=true
sa
classpath*:/org/jbpm/**/*.hbm.xml
org.hibernate.dialect.HSQLDialect
1
3
false
true 1, false 0
0
update
string_max
org.jbpm.db.hibernate.StringMax
jbpm.cfg.xml
loan-broker-process.xml
false
上面的部分已經足夠將spring和jbpm結合起來了,appfuse中的集合也就做到上面的步驟
該整合使用了spring-modules-jbpm31.jar
具體使用的演示
JbpmConfiguration config = (JbpmConfiguration) applicationContext.getBean("jbpmConfig");
JbpmContext context = config.createJbpmContext();
ProcessDefinition definition = context.getGraphSession().findLatestProcessDefinition("testProcess");
//下面是mule中使用jbpm的配置,使用org.jbpm.msg.mule.Jbpm對其進行了封裝,以便在jBpmConnector中使用
mule.xml
mule in spring-context
muleContext.xml
or 一種簡單一些的配置
muleContext.xml
web.xml
contextConfigLocation
/WEB-INF/mule-spring-config.xml
org.springframework.web.context.ContextLoaderListener
這樣spring啟動的時候,mule server也就啟動了
========
使用spring和mule混合標籤的config.xml
SpringConfigurationBuilder builder = new SpringConfigurationBuilder();
UMOManager manager = builder.configure("mule-spring-config.xml,mule-spring-components.xml");
接下來不需要做任何處理,因為之後都會通過
MuleManager.getInstance() 來獲得該manager
br /> "http://www.symphonysoft.com/dtds/mule/mule-spring-configuration.dtd">
//create a client
MuleClient client = new MuleClient();
//send a jms message asynchronously
client.dispatch("jms://my.queue", "some data", null);
//or to receive a pop3 message via a configured mailbox
UMOMessage message = client.receive("pop3://myInboxProvider", 3000);
//or synchonous send a inter-vm message
UMOMessage message2 = client.send("vm://my.object", "Some more data", null);
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1600021