【问题标题】:Spring JMS URL - Converting SSL To TCPSpring JMS URL - 将 SSL 转换为 TCP
【发布时间】:2020-01-07 05:51:17
【问题描述】:

我们有一些使用 TCP 协议连接到 JMS 的现有源代码。我们在属性文件中提供如下所示的 EMS URL:

tib.ems.url=tcp://UK_ONES_DEV_0000.ldn.mywork.com:9222

现在我们的 EMS URL 已更改为 SSL,但是当我们在属性文件中对 ems URL 进行任何更改时,它会自动将 SSL 更改为 TCP,并且连接失败。我想知道我们是否需要对 SSL 连接进行任何更改。

<bean id="orcaReplayConnectionFactory"
      class="org.springframework.jms.connection.UserCredentialsConnectionFactoryAdapter">
    <property name="targetConnectionFactory" ref="orcaProviderReplayConnectionFactory"/>
    <property name="username" value="${jms.orca.username}"/>
    <property name="password" value="${jms.orca.password}"/>
</bean>

<jee:jndi-lookup id="orcaProviderReplayConnectionFactory"
                 jndi-name="${jndi.orca.name.replay}">
    <jee:environment>
        java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory
        java.naming.provider.url=${jndi.orca.url}
        java.naming.factory.url.pkgs=com.tibco.tibjms.naming
    </jee:environment>
</jee:jndi-lookup>

15:43:12.923 [main] 信息 o.s.s.c.ThreadPoolTask​​Scheduler - 初始化 ExecutorService 'taskScheduler' 15:43:13.528 [main] WARN o.s.c.s.ClassPathXmlApplicationContext - 上下文初始化期间遇到异常 - 取消刷新尝试 org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.jms.listener.DefaultMessageListenerContainer#0”的bean时出错:设置bean属性“connectionFactory”时无法解析对bean“orcaConnectionFactory_v2”的引用;嵌套异常是 org.springframework.beans.factory.BeanCreationException:在类路径资源 [spring/integration-context.xml] 中定义名称为“orcaConnectionFactory_v2”的 bean 创建时出错:在设置 bean 属性“targetConnectionFactory”时无法解析对 bean“orcaProviderConnectionFactory_v2”的引用';嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“orcaProviderConnectionFactory_v2”的 bean 时出错:调用 init 方法失败;嵌套异常是 javax.naming.ServiceUnavailableException: 无法查询 JNDI: 无法连接到服务器 tcp://UK_ONES_UAT_0000.ldn.mywork.com:9222 [根异常是 javax.jms.JMSException: 无法连接到服务器在 tcp://UK_ONES_UAT_0000.ldn.mywork.com:9222]

【问题讨论】:

  • " 我想知道我们是否需要对 SSL 连接进行任何更改。" 是的,从 TCP 切换到 TLS 不仅仅是更改一些 URL。您通常必须围绕证书和验证进行配置。

标签: spring ssl jms spring-jms jms-topic


【解决方案1】:

通常,当使用 JNDI 时,连接 URL 是在提供程序而不是 JNDI 客户端中配置的。您需要在提供程序中修复 url。

【讨论】:

    【解决方案2】:

    在执行 JNDI l 时添加突出显示的配置后,问题得到解决

    <jee:environment>
                java.naming.factory.initial=com.tibco.tibjms.naming.TibjmsInitialContextFactory
                java.naming.provider.url=${jndi.orca.url}
                java.naming.factory.url.pkgs=com.tibco.tibjms.naming
                **com.tibco.tibjms.naming.security_protocol=ssl
                com.tibco.tibjms.naming.ssl_enable_verify_host=false**
                java.naming.security.principal=${jms.orca.username}
                java.naming.security.credentials=${jms.orca.password}
            </jee:environment>
    

    【讨论】:

      猜你喜欢
      • 2016-06-26
      • 2018-04-22
      • 1970-01-01
      • 1970-01-01
      • 2016-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      相关资源
      最近更新 更多