一、选择ServiceMix的原因
1、完整支持JBI标准
2、官方网站打开速度很快(本想和Mule比较下的,但Mule官网速度太卡,半天都没打开)
3、自己看得书中示例全面
虽然他年青,但是他充满活力!^_^
二、安装
1、下载Apache ServiceMix 3.2.2 (.zip)
http://servicemix.apache.org/download.html
2、解压
3、系统中要先安装好jdk(5.0以上),配置好java_home,像D:\Program Files\Java\jdk1.6.0
4、在%ServiceMix_home%\bin目录下运行ServiceMix.bat,即可看到运行的效果
另:我第一次运行不起,出现下述异常情况,最后通过重新JDK实现了正常。
附异常信息:
Loading Apache ServiceMix from servicemix.xml on the CLASSPATH Caught: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'broker' defined in class path resource [activemq.xml]: Invocatio n of init method failed; nested exception is java.lang.NoClassDefFoundError: jav a/sql/SQLClientInfoException org.springframework.beans.factory.BeanCreationException: Error creating bean wit h name 'broker' defined in class path resource [activemq.xml]: Invocation of ini t method failed; nested exception is java.lang.NoClassDefFoundError: java/sql/SQ LClientInfoException Caused by: java.lang.NoClassDefFoundError: java/sql/SQLClientInfoException at org.apache.derby.jdbc.Driver40.getNewEmbedConnection(Unknown Source) at org.apache.derby.jdbc.InternalDriver.connect(Unknown Source) at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(Unknown Source ) at org.apache.derby.jdbc.EmbeddedDataSource.getConnection(Unknown Source ) at org.apache.activemq.store.jdbc.TransactionContext.getConnection(Trans actionContext.java:55) at org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.createAdapter(J DBCPersistenceAdapter.java:297) at org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.getAdapter(JDBC PersistenceAdapter.java:251) at org.apache.activemq.store.jdbc.JDBCPersistenceAdapter.start(JDBCPersi stenceAdapter.java:152) at org.apache.activemq.store.journal.JournalPersistenceAdapter.start(Jou rnalPersistenceAdapter.java:223) at org.apache.activemq.broker.BrokerService.createRegionBroker(BrokerSer vice.java:1251) at org.apache.activemq.broker.BrokerService.createBroker(BrokerService.j ava:1209) at org.apache.activemq.broker.BrokerService.getBroker(BrokerService.java :508) at org.apache.activemq.broker.BrokerService.start(BrokerService.java:394 ) at org.apache.activemq.xbean.XBeanBrokerService.afterPropertiesSet(XBean BrokerService.java:47) at org.springframework.beans.factory.support.AbstractAutowireCapableBean Factory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1201) at org.springframework.beans.factory.support.AbstractAutowireCapableBean Factory.initializeBean(AbstractAutowireCapableBeanFactory.java:1171) at org.springframework.beans.factory.support.AbstractAutowireCapableBean Factory.createBean(AbstractAutowireCapableBeanFactory.java:425) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb ject(AbstractBeanFactory.java:251) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr y.getSingleton(DefaultSingletonBeanRegistry.java:156) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:248) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:160) at org.springframework.beans.factory.support.AbstractAutowireCapableBean Factory.createBean(AbstractAutowireCapableBeanFactory.java:337) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb ject(AbstractBeanFactory.java:251) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr y.getSingleton(DefaultSingletonBeanRegistry.java:156) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:248) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:160) at org.springframework.beans.factory.support.AbstractAutowireCapableBean Factory.createBean(AbstractAutowireCapableBeanFactory.java:337) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getOb ject(AbstractBeanFactory.java:251) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistr y.getSingleton(DefaultSingletonBeanRegistry.java:156) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:248) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:160) at org.springframework.beans.factory.support.DefaultListableBeanFactory. preInstantiateSingletons(DefaultListableBeanFactory.java:284) at org.springframework.context.support.AbstractApplicationContext.refres h(AbstractApplicationContext.java:352) at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init> (ClassPathXmlApplicationContext.java:161) at org.apache.xbean.spring.context.ClassPathXmlApplicationContext.<init> (ClassPathXmlApplicationContext.java:51) at org.apache.servicemix.Main.main(Main.java:54) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:589) at org.codehaus.classworlds.Launcher.launchStandard(Launcher.java:410) at org.codehaus.classworlds.Launcher.launch(Launcher.java:344) at org.codehaus.classworlds.Launcher.main(Launcher.java:461)