当前位置: 首页 > 知识库问答 >
问题:

Spring与WebSphere JMS IBM MQ提供程序的集成

陶元凯
2023-03-14

我们有一个WebSphere JMS Queue和QueueConnectionFactory,提供程序为IBM MQ。我们不能直接连接到IBM MQ。

我有以下配置-我有bean jmsConnectionFactory,它使用InitialContext创建工厂。_queue是我的队列的JNDI名称

<int-jms:inbound-channel-adapter channel="transformedChannel" connection-factory="jmsConnectionFactory" 
destination-name="THE_QUEUE">
<int:poller fixed-delay="500" />
</int-jms:inbound-channel-adapter>

它因错误而失败

由:com.ibm.msg.client.jms.DetailedInvalidDestinationException:JMSWMQ2008:未能打开MQ队列“the_queue”。JMS试图执行MQOPEN,但WebSphere MQ报告了一个错误。使用链接异常确定此错误的原因。检查指定的队列和队列管理器是否定义正确。

我的出站通道配置

<int-jms:outbound-channel-adapter id="respTopic" 
connection-factory="jmsConnectionFactory" 
destination-name="THE_REPLYQ" channel="process-channel"/>
   @Bean
    public ConnectionFactory jmsConnectionFactory(){
        ConnectionFactory connectionFactory = null ;           
        Context ctx = null;         
        Properties p = new Properties();
        p.put(Context.INITIAL_CONTEXT_FACTORY,"com.ibm.websphere.naming.WsnInitialContextFactory");
        p.put(Context.PROVIDER_URL, "iiop://hostname.sl");
        p.put("com.ibm.CORBA.ORBInit", "com.ibm.ws.sib.client.ORB");

       try {
            ctx = new InitialContext(p);        
            if (null != ctx)
                System.out.println("Got naming context");
            connectionFactory = (QueueConnectionFactory) ctx.lookup

("BDQCF");
}...


@Bean
public JmsListenerContainerFactory<?> mydbFactory(ConnectionFactory jmsConnectionFactory,
                                                DefaultJmsListenerContainerFactoryConfigurer configurer) {
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    configurer.configure(factory, jmsConnectionFactory);

    return factory;
}

EDIT2:注释后添加的代码

<int:channel id="jmsInputChannel" />
  <jee:jndi-lookup id="naarconnectionFactory" jndi-name="MQ_QUEUE" resource-ref="false">
   <jee:environment>
      java.naming.factory.initial=com.ibm.websphere.naming.WsnInitialContextFactory
      java.naming.provider.url=iiop://host.ws
   </jee:environment>
</jee:jndi-lookup>

<int-jms:inbound-channel-adapter id="jmsIn"  channel="jmsInputChannel" 
connection-factory="jmsNAARConnectionFactory" destination-name="naarconnectionFactory">
   <int:poller fixed-delay="500" />
</int-jms:inbound-channel-adapter>

共有1个答案

浦修文
2023-03-14

不能只使用JNDI名称--必须执行JNDI查找以将其解析到目标--请参见Spring JMS文档。

 类似资料:
  • 我需要使用谷歌身份提供商Hi将SAML 2.0与我们的应用程序集成 我们的应用程序目前在其架构中使用谷歌云平台和Firebase,我被指派使用Okta将SAML 2.0集成到应用程序中。我对两个平台上的不同术语感到困惑。我一直在Okta和谷歌云平台上遵循指南,但仍然无法成功解决这个问题。 我的问题来自Okta和谷歌云平台,我将在这里逐一提问 Okta创建一个新的应用程序时 受众URI(SP实体ID

  • 我想为我的web应用程序实现单点登录功能。 我们的团队使用Spring框架,它似乎支持CAS作为其SSO身份验证技术。 CAS似乎对管理本地用户非常有用,但是(如果我错了,请纠正我)它通过SAML对联邦用户的支持似乎是缺乏的。 我想知道是否有人有将CAS与外部SAML身份提供商(如Salesforce)集成的经验。i、 例如,外部公司将对其用户进行身份验证,并让我们知道哪些用户应该有访问权限,而不

  • 问题内容: 弹簧配置文件示例: 和persistence.xml jpa文件: 如您所见,与jpa提供程序相关的信息已设置3次。在事务管理器bean,实体管理器工厂bean和持久性单元配置中: 但是实际上在我的项目中,我仅使用提供程序配置了持久性单元。而且有效。 所以我的问题是提供商,方言和卖方选项之间有什么区别?我必须全部设置它们,还是可以跳过其中一些?例如,我可以设置为EntityManger

  • 问题内容: 有人可以向我解释差异吗? Provisioner-在docker中安装,运行,拉出容器中的一项工作。 提供程序-是运行VM的东西。即VBox运行ubuntu OS映像。 Docker如何成为提供者?它直接运行一些docker镜像吗?如果我在Windows上,必须有一些boot2docker的隐藏用法,对不对?我什么时候使用每个? 问题答案: Docker Provisioner帮助准备

  • 我已经在文件中添加了所有相关build.gradle依赖项。尽管如此,当我尝试运行调用SOAP服务时,还是会出现以下错误。共享依赖项部分和错误详细信息。使用Java11。网上已经有很多答案,但似乎都不起作用。任何帮助/建议将是值得赞赏的。 低于错误跟踪

  • 下面是我的app.js文件 下面是我的状态文件 我有一个模板,我想从那里导航到下一个状态 但是只要我点击这个锚标签,它就会把我导航回主页。(不去我打算去的州)。主要问题是URL(我猜)任何帮助都会很感激。