首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从外部连接到Jetty中嵌入的ActiveMQ broker

无法从外部连接到Jetty中嵌入的ActiveMQ broker
EN

Stack Overflow用户
提问于 2018-10-09 17:48:11
回答 1查看 592关注 0票数 1

我有一个启动嵌入式ActiveMQ代理的Jetty。我正在尝试用JMSToolBox连接它,但得到了以下异常:

代码语言:javascript
复制
Transport Connection to: tcp://127.0.0.1:44523 failed: java.io.IOException: Unknown data type: 97

我的代码如下:

代码语言:javascript
复制
    File dataFileDir = new File("target/amq-in-action/kahadb");
    KahaDBStore kaha = new KahaDBStore();
    kaha.setDirectory(dataFileDir);
    kaha.setJournalMaxFileLength(1024 * 1204 * 100);
    kaha.setIndexWriteBatchSize(100);
    kaha.setEnableIndexWriteAsync(false);

    List<AuthenticationUser> users = new ArrayList<AuthenticationUser>();
    users.add(new AuthenticationUser(USER_NAME, PWD, "users,users_write"));
    SimpleAuthenticationPlugin simpleAuthenticationPlugin = new SimpleAuthenticationPlugin(users);
    simpleAuthenticationPlugin.setAnonymousAccessAllowed(false);

    List<DestinationMapEntry> authorizationEntries = new ArrayList<>();
    // giving permission to read the queue for users groups 
    AuthorizationEntry authorizationEntry = new AuthorizationEntry();
    authorizationEntry.setRead("users");
    authorizationEntry.setWrite("admins,users_write");
    authorizationEntry.setAdmin("admins");
    authorizationEntry.setQueue("Provisioning");
    authorizationEntries.add(authorizationEntry);
    // "Note that full access rights should generally be given to the ActiveMQ.Advisory destinations because by default an ActiveMQConnection uses destination advisors to get early knowledge of temp destination creation and deletion." -> http://activemq.apache.org/security.html
    authorizationEntry = new AuthorizationEntry();
    authorizationEntry.setRead("guests,users");
    authorizationEntry.setWrite("guests,users");
    authorizationEntry.setAdmin("guests,users");
    authorizationEntry.setTopic("ActiveMQ.Advisory.>");
    authorizationEntries.add(authorizationEntry);       
    AuthorizationMap authorizationMap = new DefaultAuthorizationMap(authorizationEntries);
    AuthorizationPlugin authorizationPlugin = new AuthorizationPlugin(authorizationMap);

    // creating the broker service
    broker = new BrokerService();
    broker.setPersistenceAdapter(kaha);
    broker.setUseJmx(false);
    broker.setPlugins(new BrokerPlugin[]{simpleAuthenticationPlugin, authorizationPlugin});
    broker.addConnector("tcp://localhost:61616");

    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost");
    new Resource(null, "java:/ConnectionFactory", connectionFactory);
    broker.start();

我假设我应该能够从外部工具连接到嵌入式队列。

有什么想法吗?

谢谢,

V。

EN

回答 1

Stack Overflow用户

发布于 2018-10-23 02:33:20

对于JMSToolBox,JMX必须处于活动状态,因此请更改broker.setUseJmx(false);

作者:broker.setUseJmx(true); // This is the default..

此外,您可能会对this JMSToolBox issue感兴趣,因为它有一个运行示例

丹尼斯

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52718034

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档