使用 Spring 4.x 解决连接问题
Solace Connectivity issue using Spring 4.x
我们正在尝试通过 Spring 4.x 创建 Solace JMS 连接,但是
运行 main class.
我们面临以下问题
信息 |连接尝试无法托管“192.168.56.101”ConnectException com.solacesystems.jcsmp.JCSMPTransportException:(客户端名称:DESKTOP-330QOHF/7332/#000a0001 本地端口:-1 远程地址:192.168.56.101:24)- 与路由器通信时出错。原因:java.net.ConnectException:连接超时:没有更多信息((客户端名称:DESKTOP-330QOHF/7332/#000a0001 本地端口:-1 远程地址:192.168.56.101:24)-)
还可以找到附加的 spring-用于 Solace 服务器配置的上下文文件。
谢谢
Here is my Spring configuration
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.1.xsd"
xmlns:jms="http://www.springframework.org/schema/jms" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.springframework.org/schema/beans">
<bean autowire="default" lazy-init="default"
class="org.springframework.jndi.JndiTemplate" id="solaceJndiTemplate">
<property name="environment">
<map>
<entry value="smf://192.168.56.101:24" key="java.naming.provider.url" />
<entry value="com.solacesystems.jndi.SolJNDIInitialContextFactory"
key="java.naming.factory.initial" />
<entry value="spring_user@Solace_Spring_VPN" key="java.naming.security.principal" />
<entry value="spring_password" key="java.naming.security.credentials" />
</map>
</property>
</bean>
<bean autowire="default" lazy-init="default"
class="org.springframework.jndi.JndiObjectFactoryBean" id="solaceConnectionFactory">
<property name="jndiTemplate" ref="solaceJndiTemplate" />
<property name="jndiName" value="JNDI/CF/ncs" />
</bean>
<bean class="org.springframework.jms.connection.CachingConnectionFactory"
id="solaceCachedConnectionFactory">
<property name="targetConnectionFactory" ref="solaceConnectionFactory" />
<property name="sessionCacheSize" value="10" />
</bean>
<bean class="org.springframework.jndi.JndiObjectFactoryBean" id="destination">
<property name="jndiTemplate" ref="solaceJndiTemplate" />
<property name="jndiName" value="JNDI/Q/requests" />
</bean>
<bean class="org.springframework.jms.core.JmsTemplate" id="jmsTemplate">
<property name="connectionFactory" ref="solaceCachedConnectionFactory" />
<property name="defaultDestination" ref="destination" />
<property name="deliveryPersistent" value="true" />
<property name="explicitQosEnabled" value="true" />
</bean>
-
<bean class="com.solacesystems.integration.spring.MessageProducer"
id="messageProducer">
<property name="jmsTemplate" ref="jmsTemplate" />
</bean>
<bean class="com.solacesystems.integration.spring.MessageConsumer"
id="messageConsumer">
</bean>
-
<bean
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
id="jmsContainer">
<property name="connectionFactory" ref="solaceCachedConnectionFactory" />
<property name="destination" ref="destination" />
<property name="messageListener" ref="messageConsumer" />
</bean>
该错误表明与 192.168.56.101:24
的网络连接失败。
请确保 192.168.56.101:24
是您 Solace 路由器的正确 IP 地址和消息端口,并且您和 Solace 消息代理之间没有防火墙。请注意,默认端口是 55555 而不是 24。
您可以通过在 Solace 消息代理上执行以下 CLI 命令来验证使用的 IP 地址和端口。
show service
将列出消息接口的端口。您正在寻找 SMF over TCP 端口。默认端口号为 55555。
在 Solace PubSub+ 硬件设备上,show ip vrf msg-backbone
将为您提供硬件设备的 IP 地址。
在 Solace PubSub+ 软件消息代理上,show ip vrf management
将为您提供它的 IP 地址。
我们正在尝试通过 Spring 4.x 创建 Solace JMS 连接,但是 运行 main class.
我们面临以下问题信息 |连接尝试无法托管“192.168.56.101”ConnectException com.solacesystems.jcsmp.JCSMPTransportException:(客户端名称:DESKTOP-330QOHF/7332/#000a0001 本地端口:-1 远程地址:192.168.56.101:24)- 与路由器通信时出错。原因:java.net.ConnectException:连接超时:没有更多信息((客户端名称:DESKTOP-330QOHF/7332/#000a0001 本地端口:-1 远程地址:192.168.56.101:24)-)
还可以找到附加的 spring-用于 Solace 服务器配置的上下文文件。
谢谢
Here is my Spring configuration
http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms-3.1.xsd" xmlns:jms="http://www.springframework.org/schema/jms" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans">
<bean autowire="default" lazy-init="default"
class="org.springframework.jndi.JndiTemplate" id="solaceJndiTemplate">
<property name="environment">
<map>
<entry value="smf://192.168.56.101:24" key="java.naming.provider.url" />
<entry value="com.solacesystems.jndi.SolJNDIInitialContextFactory"
key="java.naming.factory.initial" />
<entry value="spring_user@Solace_Spring_VPN" key="java.naming.security.principal" />
<entry value="spring_password" key="java.naming.security.credentials" />
</map>
</property>
</bean>
<bean autowire="default" lazy-init="default"
class="org.springframework.jndi.JndiObjectFactoryBean" id="solaceConnectionFactory">
<property name="jndiTemplate" ref="solaceJndiTemplate" />
<property name="jndiName" value="JNDI/CF/ncs" />
</bean>
<bean class="org.springframework.jms.connection.CachingConnectionFactory"
id="solaceCachedConnectionFactory">
<property name="targetConnectionFactory" ref="solaceConnectionFactory" />
<property name="sessionCacheSize" value="10" />
</bean>
<bean class="org.springframework.jndi.JndiObjectFactoryBean" id="destination">
<property name="jndiTemplate" ref="solaceJndiTemplate" />
<property name="jndiName" value="JNDI/Q/requests" />
</bean>
<bean class="org.springframework.jms.core.JmsTemplate" id="jmsTemplate">
<property name="connectionFactory" ref="solaceCachedConnectionFactory" />
<property name="defaultDestination" ref="destination" />
<property name="deliveryPersistent" value="true" />
<property name="explicitQosEnabled" value="true" />
</bean>
-
<bean class="com.solacesystems.integration.spring.MessageProducer"
id="messageProducer">
<property name="jmsTemplate" ref="jmsTemplate" />
</bean>
<bean class="com.solacesystems.integration.spring.MessageConsumer"
id="messageConsumer">
</bean>
-
<bean
class="org.springframework.jms.listener.DefaultMessageListenerContainer"
id="jmsContainer">
<property name="connectionFactory" ref="solaceCachedConnectionFactory" />
<property name="destination" ref="destination" />
<property name="messageListener" ref="messageConsumer" />
</bean>
该错误表明与 192.168.56.101:24
的网络连接失败。
请确保 192.168.56.101:24
是您 Solace 路由器的正确 IP 地址和消息端口,并且您和 Solace 消息代理之间没有防火墙。请注意,默认端口是 55555 而不是 24。
您可以通过在 Solace 消息代理上执行以下 CLI 命令来验证使用的 IP 地址和端口。
show service
将列出消息接口的端口。您正在寻找 SMF over TCP 端口。默认端口号为 55555。在 Solace PubSub+ 硬件设备上,
show ip vrf msg-backbone
将为您提供硬件设备的 IP 地址。在 Solace PubSub+ 软件消息代理上,
show ip vrf management
将为您提供它的 IP 地址。