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

无法使用JNDI连接到Websphere MQ

阙奇思
2023-03-14
<bean id="jmsFactory" name="jmsFactory" class="com.ibm.mq.jms.MQConnectionFactory">
    <property name="queueManager" value="${UM_MQ_QM}" />
    <property name="hostName" value="${UM_MQ_HOST}" />
    <property name="channel" value="${UM_MQ_CHANNEL}" />
    <property name="port" value="${UM_MQ_PORT}" />
    <property name="transportType" value="1" />
    <property name="SSLCipherSuite" value="${SSL_CIPHER_SUITE}" />
</bean>

使用JNDI,我可以连接到ActiveMQ。但是当切换提供程序类时,它给了我以下异常。

Spring JNDI配置:

<bean id="jmsFactory" class="org.springframework.jndi.JndiObjectFactoryBean">
  <property name="jndiName" value="QueueConnectionFactory" />
  <property name="jndiTemplate" ref="jndiTemplate" /> 
</bean>

<bean id="jndiTemplate" class="org.springframework.jndi.JndiTemplate">
  <property name="environment">
    <props>
      <prop key="java.naming.factory.initial">com.ibm.mq.jms.context.WMQInitialContextFactory</prop>
      <prop key="java.naming.provider.url">${UM_MQ_HOST}:${UM_MQ_PORT}/${UM_MQ_CHANNEL}</prop>
    </props>
  </property>
</bean>

例外情况:

Caused by: javax.naming.NamingException: Caught an Exception trying to create the admin queue. Exception was: com.ibm.mq.pcf.PCFException: MQJE001: Completion Code '2', Reason '2035'. [Root exception is com.ibm.mq.pcf.PCFException: MQJE001: Completion Code '2', Reason '2035'.]
   at com.ibm.mq.jms.context.MQContext.<init>(MQContext.java:294)
   at com.ibm.mq.jms.context.WMQInitialContextFactory.getInitialContext(WMQInitialContextFactory.java:29)
   at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:667)
   at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288)
   at javax.naming.InitialContext.init(InitialContext.java:223)
   at javax.naming.InitialContext.<init>(InitialContext.java:197)
   at org.springframework.jndi.JndiTemplate.createInitialContext(JndiTemplate.java:136)
   at org.springframework.jndi.JndiTemplate.getContext(JndiTemplate.java:103)
   at org.springframework.jndi.JndiTemplate.execute(JndiTemplate.java:85)
   at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:152)
   at org.springframework.jndi.JndiTemplate.lookup(JndiTemplate.java:178)
   at org.springframework.jndi.JndiLocatorSupport.lookup(JndiLocatorSupport.java:95)
   at org.springframework.jndi.JndiObjectLocator.lookup(JndiObjectLocator.java:105)
   at org.springframework.jndi.JndiObjectFactoryBean.lookupWithFallback(JndiObjectFactoryBean.java:201)
   at org.springframework.jndi.JndiObjectFactoryBean.afterPropertiesSet(JndiObjectFactoryBean.java:187)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1545)
   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1483)
   ... 109 more
Caused by: com.ibm.mq.pcf.PCFException: MQJE001: Completion Code '2', Reason '2035'.
   at com.ibm.mq.pcf.PCFMessageAgent.send(PCFMessageAgent.java:241)
   at com.ibm.mq.jms.context.MQContext.<init>(MQContext.java:273)
   ... 125 more
    null

共有1个答案

慕乐语
2023-03-14

您将得到一个MQ原因代码2035,这意味着:Problem(抽象

您将获得未在WebSphere MQ应用程序或通道中授权的MQRC2035。您需要了解导致此失败的原因。

2035 0x000007F3 MQRC_NOT_AUTHORIZED

解决这个问题,当用户没有被授权执行该函数时,返回MQRC2035(MQRC_NOT_AUTHORIZED)。确定用户不能访问哪个对象,并向用户提供对该对象的访问权限。

调试技术:使用dspmqaut(display authority命令)来确定用户是否具有访问预期对象的授权。

但是,听听其他人对JNDI的看法,他们知道自己在说什么。

 类似资料:
  • 我有这个代码可以通过IMAP连接到Gmail 我总是会遇到这个例外,指向商店。connect() 我已经检查了谷歌的所有信息,如果我是对的,IMAP的端口是993。用户名和密码绝对正确。我想我错过了一些东西,但我无法弄清楚。 任何帮助都将不胜感激! 编辑 添加邮件后。debug,我得到了这些日志,但我仍然停留在商店里。connect() 它已登录,但仍卡在connect上。。

  • 我使用的是Oracle 11g R2数据库。我使用Oracle SQL Developer。如果我创建了一个新连接并检查了基本连接类型并填写了我可以连接的字段。如果我选择TNS并在下拉菜单中选择我想要的,它会显示失败E/S异常:网络适配器无法建立连接。 这是tnsnames.ora。我用它连接到2个数据库,dblilly和astrea。我可以正确连接到astrea。侦听器已打开,实例已准备就绪。你

  • 当我尝试在数据库中插入数据时,会出现以下错误: 致命错误:未捕获PDOException:在C:\xampp\htdocs\social media\classes\DB中找不到驱动程序。php:5堆栈跟踪:#0 C:\xampp\htdocs\socialmedia\classes\DB。php(5):PDO-

  • 我将DataGrip配置为使用spark安装文件夹中的JDBC库。

  • 我是Harold,我是Openshift的新手,我使用下面的代码通过这里的示例用java连接到MySQLhttps://www.openshift.com/forums/openshift/no-suitable-driver-found-error, 不幸的是,我没能成功。 起初,它说“找不到合适的驱动程序”,所以我将mysql连接器添加到WEB-INF/lib文件夹并添加类。forName(“

  • 所以我在WASv8中设置了几个MQs。5.我已经测试了这些功能,它们运行良好,现在我需要测试一些功能。为了做到这一点,我下载了“新”MQJExplorer,并注意到了从上下文加载JNDI的能力。既然Websphere实例在本地运行,那么我可以直接挂接到Websphere上下文中吗?我试着选择WebSphereApplicationServer,它给了我一个以 iiop:// 我试着用。。。 iio