You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring 4.x集成Solace JMS连接超时问题求助

解决Spring 4.x连接Solace JMS的连接超时问题

从你给出的错误日志和Spring配置来看,最直接的问题是Solace SMF端口配置错误,这也是导致连接超时的核心原因,我们一步步来排查和解决:

1. 修正SMF端口配置

Solace Broker的SMF(Solace消息协议)默认监听端口是55555,而你的配置里写的是24端口,这显然是不正确的。你需要修改solaceJndiTemplate中的java.naming.provider.url配置:

修改前:

<entry value="smf://192.168.56.101:24" key="java.naming.provider.url" />

修改后(使用默认SMF端口):

<entry value="smf://192.168.56.101:55555" key="java.naming.provider.url" />

如果你的Solace Broker修改过默认SMF端口,请替换为实际的端口号。

2. 额外排查验证步骤

如果修正端口后仍有问题,可以继续检查以下几点:

  • 网络连通性测试:在运行Spring应用的机器上,执行命令telnet 192.168.56.101 55555(或实际端口),确认能正常连通。如果不通,检查Broker所在机器的防火墙、安全组是否开放了对应端口,或者网络路由是否正常。
  • Solace Broker配置验证:
    • 确认Broker已启用SMF服务,并且监听端口与配置一致;
    • 确认Spring_Spring_VPN这个VPN实例存在,且spring_user用户拥有该VPN的访问权限;
    • 确认用户密码spring_password正确无误。
  • JNDI资源存在性检查:登录Solace管理控制台,确认已创建JNDI/CF/ncs连接工厂和JNDI/Q/requests队列,注意Solace的JNDI名称是大小写敏感的,必须与配置完全匹配。

完整修正后的核心配置片段

<bean autowire="default" lazy-init="default" class="org.springframework.jndi.JndiTemplate" id="solaceJndiTemplate">
    <property name="environment">
        <map>
            <entry value="smf://192.168.56.101:55555" 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>

内容的提问来源于stack exchange,提问作者saurabh mahajan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 09:05:13