【问题标题】:In Spring Boot, How do I declare that my JMS server is embedded?在 Spring Boot 中,如何声明我的 JMS 服务器是嵌入式的?
【发布时间】:2018-09-14 20:49:12
【问题描述】:

Spring Boot documentation 有一个嵌入式 JMS 服务器的非常简短的说明:“您没有看到定义的两个 bean 是 JmsTemplate 和 ConnectionFactory。它们是由 Spring Boot 自动创建的。在这种情况下,ActiveMQ 代理运行嵌入。”嗯? Reference Documentation 对此一无所知。我需要创建两个 VM,每个都从自己的 jar 文件运行,并且我需要其中一个来启动嵌入式 JMS 服务器,但我不知道如何执行此操作。有人可以指出我正确的方向。 (如果您提供链接,我更喜欢一些清晰的文档而不是示例,但我会对一个好的示例感到满意。)

【问题讨论】:

    标签: spring-boot spring-jms


    【解决方案1】:

    您正在查看错误的参考文档。你的来自 Spring Integration。

    Spring Boot 可以在这里找到:

    https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#boot-features-activemq

    你会在那里找到答案:

    当 ActiveMQ 在类路径上可用时,Spring Boot 也可以 配置一个 ConnectionFactory。如果代理存在,则嵌入 代理会自动启动和配置(如果没有代理 URL 通过配置指定)。

    【讨论】:

    • 谢谢。我知道某处有更多文档,另一个链接也称为“参考文档”。他们应该提供一个链接。
    • 进一步阅读,仍然不清楚。 “如果经纪人在场……”这句话相当含糊。现在在哪里?在类路径上?这意味着代理必须与 ActiveMQ 不同,否则将无法避免嵌入代理。如何将代理放在类路径上? (我应该把它放在那里吗?)这里的代码示例可能会有所帮助。
    • 该文档也未能提供有关嵌入式服务器 url 的任何详细信息,例如端口。如果我指定一个 url,显然这意味着我不想要一个嵌入式代理。查看应用程序的输出,它告诉我它在以下 url 启动了一个代理: vm://localhost 尝试连接到 vm://localhost 给了我“未知协议”。尝试 tcp://localhost 给我“非法端口号:-1” 尝试 tcp://localhost:61616 给我“连接被拒绝”,就像我尝试过的任何其他端口号一样。文档没有帮助。
    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    • 2019-10-11
    • 1970-01-01
    • 1970-01-01
    • 2016-03-25
    相关资源
    最近更新 更多