gpt4 book ai didi

java - 生成绑定(bind)文件 Message Queue Broker 4.5

转载 作者:行者123 更新时间:2023-12-02 09:31:09 26 4
gpt4 key购买 nike

我正在运行 Tomcat,它创建一个 DefaultMessageListenerContainer bean。为此,它引用 connectionFactory bean,该 bean 使用 jndiTemplate bean,而该 jndiTemplate bean 使用 imq/imq_admin_objects 所在的路径。

bean定义如下

<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="destination" ref="destination"/>
<property name="messageListener" ref="transactionMessageListener"/>
<property name="sessionTransacted" value="true"/>
<property name="concurrentConsumers" value="1"/>
</bean>

<!-- JMS configuration -->
<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
<property name="environment">
<props>
<prop key="java.naming.factory.initial">
com.sun.jndi.fscontext.RefFSContextFactory
</prop>
<prop key="java.naming.provider.url">
file:///var/imq/imq_admin_objects
</prop>
</props>
</property>
</bean>

<bean id="connectionFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
<property name="jndiTemplate" ref="jndiTemplate"/>
<property name="jndiName" value="factory"/>
</bean>

问题是没有生成这样的文件夹。我正在使用 Message Queue Broker 4.5 作为 JMS。运行该服务时,它仅创建一个 var/mq 目录。我希望它生成一个 imq 文件夹,其中包含用于创建 JMS 的相应绑定(bind)文件。

最佳答案

我相信您的期望是不正确的。 com.sun.jndi.fscontext.RefFSContextFactory 引用的文件系统对象存储必须已经存在。它不会为你创建它。您必须创建并提供它,以便 bean 可以正确初始化并且 JNDI 查找可以运行。

绑定(bind)文件包含 JNDI 查找名称以及如何通过网络连接到服务器(例如主机名、端口等)等详细信息。这些详细信息必须由管理员提供。 JNDI 实现无法自行提供它们。

如果您browse the "Developer’s Guide for Java Clients"链接自 Open MQ 4.5 Documentation页面并检查标题为 "Using the Java API" 的第 2 章您将在“获取连接工厂”部分中看到这一点:

Typically, a connection factory is created for you by a Message Queue administrator and preconfigured, using the administration tools described in "Administrative Tasks and Tools" in Oracle GlassFish Server Message Queue Administration Guide with whatever property settings are appropriate for connecting to particular JMS provider. The factory is then placed in a publicly available administered object store, where you can access it by name using the Java Naming and Directory Interface (JNDI) API.

在文档的下面,您会发现 an example of how to look up a connection factory object in the JNDI object store 。这个示例使用文件系统对象存储,就像您一样,它特别指出:

The directory represented by C:/imq_admin_objects must already exist; if necessary, you must create the directory before referencing it in your code.

简而言之,您必须创建受管理的文件系统对象存储并使其公开可用,以便 JNDI 客户端可以使用它。

关于java - 生成绑定(bind)文件 Message Queue Broker 4.5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57957205/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com