2017-06-21 38 views
0

我想要读取some_dir/activemq.xml文件,以便我可以使用org.apache.activemq.broker.BrokerService创建代理,根据提供的文件进行配置。我尝试以编程方式设置属性:从activemq.xml文件读取代理配置并使用Java代码启动代理

TransportConnector tc = new TransportConnector(); 
    tc.setName("openwire"); 
    tc.setUri(new URI("tcp://localhost:61616?trace=true")); 

    List<TransportConnector> tcList = new ArrayList<TransportConnector>(); 
    tcList.add(tc); 
    broker.setTransportConnectors(tcList); 

    DiscoveryNetworkConnector nc = new DiscoveryNetworkConnector(); 
    nc.setName("Q:broker1->broker2"); 
    nc.setUri(new URI("static:(tcp://localhost:61616)")); 
    nc.setDuplex(false); 
    nc.setDecreaseNetworkConsumerPriority(false); 
    nc.setNetworkTTL(2); 
    nc.setDynamicOnly(true); 

    List<DiscoveryNetworkConnector> ncList = new ArrayList<DiscoveryNetworkConnector>(); 
    ncList.add(nc); 

    broker.setNetworkConnectors(ncList); 


    System.out.println(broker); 
    //broker.startTransportConnector(tc); 
    //broker.startAllConnectors(); 
    broker.start(); 

但它很长。 有什么办法可以做broker.readConfigFile(“/ conf/activemq.xml”)

或者这是不可能的(尽管我认为是这样)。因此,启动代理的唯一方法是从命令行编写Java客户端(生产者/消费者)以连接到该客户端。

回答

1

尝试

org.apache.activemq.broker.BrokerService broker = org.apache.activemq.broker.BrokerFactory.createBroker(new URI("xbean:file:some_dir/activemq.xml")); 
broker.start(); 
没有找到
<dependency> 
    <groupId>org.apache.activemq</groupId> 
    <artifactId>activemq-all</artifactId> 
    <version>5.xx.x</version> 
</dependency> 

http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html

+0

特例去解决每个:org.eclipse.jetty.util.security.Constraint 组织/日蚀/码头/ server/UserIdentity org/eclipse/jetty/util/component/AbstractLifeCycle org.eclipse.jetty.security.HashLoginService IO/fabric8 /洞察/日志/支持/ LogQuerySupportMBean io.fabric8.insight.log.log4j.Log4jLogQuery 组织/阿帕奇/公/日志/的LogFactory 组织/阿帕奇/ xbean /春/上下文/ IMPL/URIEditor 组织/ springframework/context/ApplicationContext org/springframework/core/NestedRuntimeException org/springframework/beans/BeansException,其中罐子添加为没有运气仍然:( – niranjan

+0

检查我的更新,是否已添加activemq-all依赖项? –

+0

是activemq-all-5.11.1.jar和kahadb-5.5.0.jar被添加了,因此除了传递配置文件 – niranjan