Hello Jean, I am also facing same issue when I try to start embedded broker with config file URI. Please let me know whether you able to resolve the problem.
Thanks and Regards, Kamesh JS75 wrote: > > Dear All: > Now I need to implement two requirements with MQ4.1. > 1. Start my embedded broker with cofig.xml file. > 2. Use MS SQL Server instead of default derby. > > And here is my activeMQ.xml (I put it in C disk) > <!-- > Licensed to the Apache Software Foundation (ASF) under one or more > contributor license agreements. See the NOTICE file distributed with > this work for additional information regarding copyright ownership. > The ASF licenses this file to You under the Apache License, Version > 2.0 > (the "License"); you may not use this file except in compliance with > the License. You may obtain a copy of the License at > > http://www.apache.org/licenses/LICENSE-2.0 > > Unless required by applicable law or agreed to in writing, software > distributed under the License is distributed on an "AS IS" BASIS, > WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or > implied. > See the License for the specific language governing permissions and > limitations under the License. > --> > <!-- START SNIPPET: example --> > <beans > xmlns="http://www.springframework.org/schema/beans" > xmlns:amq="http://activemq.org/config/1.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation="http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-2.0.xsd > http://activemq.org/config/1.0 > http://activemq.apache.org/schema/activemq-core.xsd > http://activemq.apache.org/camel/schema/spring > http://activemq.apache.org/camel/schema/spring/camel-spring.xsd"> > > <!-- Allows us to use system properties as variables in this > configuration file --> > <bean > class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/> > > <broker xmlns="http://activemq.org/config/1.0" brokerName="localhost" > dataDirectory="C://data"> > > <!-- Destination specific policies using destination names or > wildcards --> > <destinationPolicy> > <policyMap> > <policyEntries> > > <policyEntry topic="FOO.>" producerFlowControl="false" > memoryLimit="1mb"> > <dispatchPolicy> > <strictOrderDispatchPolicy/> > </dispatchPolicy> > <subscriptionRecoveryPolicy> > <lastImageSubscriptionRecoveryPolicy/> > </subscriptionRecoveryPolicy> > </policyEntry> > > </policyEntries> > </policyMap> > </destinationPolicy> > > > <!-- The transport connectors ActiveMQ will listen to --> > <transportConnectors> > <transportConnector name="openwire" uri="tcp://localhost:61616" > discoveryUri="multicast://default"/> > <transportConnector name="ssl" uri="ssl://localhost:61617"/> > <transportConnector name="stomp" uri="stomp://localhost:61613"/> > <transportConnector name="xmpp" uri="xmpp://localhost:61222"/> > </transportConnectors> > > <!-- The store and forward broker networks ActiveMQ will listen to --> > <networkConnectors> > <!-- by default just auto discover the other brokers --> > <networkConnector name="default-nc" uri="multicast://default"/> > <!-- > <networkConnector name="host1 and host2" > uri="static://(tcp://host1:61616,tcp://host2:61616)"/> > --> > </networkConnectors> > > > <!-- Use the following if you wish to configure the journal with JDBC > --> > <!-- > <persistenceAdapter> > <journaledJDBC journalLogFiles="5" > dataDirectory="${activemq.base}/activemq-data" > dataSource="#postgres-ds"/> > </persistenceAdapter> > --> > > <!-- Or if you want to use pure JDBC without a journal --> > > <persistenceAdapter> > <jdbcPersistenceAdapter dataSource="#mssql-ds"/> > </persistenceAdapter> > > > <!-- Use the following to set the broker memory limit > <systemUsage> > <systemUsage> > <memoryUsage> > <memoryUsage limit="10 mb" > percentUsageMinDelta="20"/> > </memoryUsage> > <tempUsage> > <tempUsage limit="100 mb"/> > </tempUsage> > <storeUsage> > <storeUsage limit="1 gb" name="foo"/> > </storeUsage> > </systemUsage> > </systemUsage> > --> > > <!-- Use the following to configure how ActiveMQ is exposed in JMX > <managementContext> > <managementContext connectorPort="1099" > jmxDomainName="org.apache.activemq"/> > </managementContext> > --> > > </broker> > > <!-- > ** Lets deploy some Enterprise Integration Patterns inside the > ActiveMQ Message Broker > ** For more details see > ** > ** http://activemq.apache.org/enterprise-integration-patterns.html > --> > <camelContext id="camel" > xmlns="http://activemq.apache.org/camel/schema/spring"> > > <!-- You can use a <package> element for each root package to search > for Java routes --> > <package>org.foo.bar</package> > > <!-- You can use Spring XML syntax to define the routes here using the > <route> element --> > <route> > <from uri="activemq:example.A"/> > <to uri="activemq:example.B"/> > </route> > </camelContext> > > > > <!-- lets create a command agent to respond to message based admin > commands on the ActiveMQ.Agent topic --> > <commandAgent xmlns="http://activemq.org/config/1.0"/> > > > <!-- An embedded servlet engine for serving up the Admin console --> > <jetty xmlns="http://mortbay.com/schemas/jetty/1.0"> > <connectors> > <nioConnector port="8161" /> > </connectors> > > <handlers> > <webAppContext contextPath="/admin" > resourceBase="${activemq.base}/webapps/admin" logUrlOnStart="true" /> > <webAppContext contextPath="/demo" > resourceBase="${activemq.base}/webapps/demo" logUrlOnStart="true" /> > </handlers> > </jetty> > > > <!-- MSSQL DataSource Sample Setup --> > > <bean id="mssql-ds" class="org.apache.commons.dbcp.BasicDataSource" > destroy-method="close"> > <property name="driverClassName" > value="com.microsoft.sqlserver.jdbc.SQLServerDriver"/> > <property name="url" value="jdbc:sqlserver://mySQLDB:1433"/> > <property name="username" value="admin"/> > <property name="password" value="admin"/> > <property name="databaseName" value="test"/> > <property name="createDatabase" value="create"/> > </bean> > > </beans> > <!-- END SNIPPET: example --> > > And I start my embedded broker as : > broker = BrokerFactory.createBroker(new URI("file:C://activeMQ.xml")); > > Strangely, I got exception below, but my application works successfully?! > (default broker setting?) > > java.io.IOException: Could load file factory:java.io.IOException: Could > not find factory class for resource: > META-INF/services/org/apache/activemq/broker/file > at > org.apache.activemq.util.IOExceptionSupport.create(IOExceptionSupport.java:25) > at > org.apache.activemq.broker.BrokerFactory.createBrokerFactoryHandler(BrokerFactory.java:43) > at > org.apache.activemq.broker.BrokerFactory.createBroker(BrokerFactory.java:56) > at com.aboveE.powerProcess.util.MQHelper.startBroker(MQHelper.java:65) > at com.aboveE.powerProcess.event.queue.TestMain.<init>(TestMain.java:25) > at com.aboveE.powerProcess.event.queue.TestMain.main(TestMain.java:54) > Caused by: java.io.IOException: Could not find factory class for resource: > META-INF/services/org/apache/activemq/broker/file > at > org.apache.activemq.util.FactoryFinder.doFindFactoryProperies(FactoryFinder.java:90) > at > org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:58) > at > org.apache.activemq.util.FactoryFinder.newInstance(FactoryFinder.java:47) > at > org.apache.activemq.broker.BrokerFactory.createBrokerFactoryHandler(BrokerFactory.java:41) > ... 4 more > > Have I forgotten any tag in configure xml or lib into my application ? > > There is another main factor about performance and persisitency. > FAQ replies that changing db may reduce performance, however, could I do > something in case to maintain the performance? (Just as the same as derby, > possible?) > > Thank you all~:-) > > Sincerely, > Jean > -- View this message in context: http://old.nabble.com/Exception-%3A-factory%3Ajava.io.IOException-tp15219903p26571002.html Sent from the ActiveMQ - User mailing list archive at Nabble.com.