首页 文章

使用Spring 4.x解决Solace连接问题

提问于
浏览
2

我们正在尝试通过Spring 4.x创建Solace JMS连接,但是在运行main类时我们面临着下面的问题 .

信息|连接尝试无法主持'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) - )

还可以找到Solace服务器配置的附加spring-context文件 .

谢谢 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-实例" 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>

1 回答

  • 0

    该错误表示与 192.168.56.101:24 的网络连接失败 .

    请确保 192.168.56.101:24 是Solace路由器的正确IP地址和消息传送端口,并且您和Solace消息代理之间没有防火墙 . 请注意,默认端口是55555而不是24 .

    您可以在Solace消息代理上验证执行以下CLI命令所使用的IP地址和端口 .

    • show service 将列出消息传递接口的端口 . 您正在寻找通过TCP端口的SMF . 默认端口号为55555 .

    • 在Solace PubSub硬件设备上, show ip vrf msg-backbone 将为您提供硬件设备的IP地址 .

    • 在Solace PubSub软件消息代理上, show ip vrf management 将为您提供IP地址 .

相关问题