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

ejb jar中的激活配置属性。未在WebLogic中的MQ ActivationSpecification上设置xml

田兴旺
2023-03-14

我试图在WebLogic Server内部配置IBM MQ资源适配器(MQ-RA),以便通过MQ-RA提供的激活规范(ActSpec)从MQ队列管理器(QMgr)向消息驱动bean(MDB)发送入站消息。

我遇到的问题是,我在我的MDB的ejb-jar.xml部署描述符中指定的tivation-config-属性XML定义(特别是ConnectionFactoryLookup和DestinationLookup)没有被WebLogic在MQ提供的ActSpec对象上设置-RA.因此,当MDB被部署并且WebLogic根据JCA规范调用endpoint Actication时,它无法连接到MQ队列管理器(QMgr)-因为它试图使用默认连接选项而不是在ConnectionFactoryLookup属性引用的JNDI CF。

我的理解是,当创建/激活消息endpoint实例时,EJB容器(WebLogic)应该为MQ-RA提供一个已配置的ActSpec,该ActSpec具有基于激活配置属性条目设置的配置信息。

所以我的问题是:

为什么EJBJAR中有这些activationconfig属性条目。未在从MQ-RA创建的ActSpec上设置xml文件?

(稍微放在一边:如果我部署一个用于出站消息传递的简单Servlet应用程序,那么这一切都很好,EJB应用程序在从JNDI查找ConnectionFactory和目的地后,使用部署的MQ-RA将消息发送到MQ QMgr。因此,看起来MQ-RA部署正常,并且其类可用。)

下面,我将解释到目前为止我是如何设置WebLogic服务器的,以及我是如何部署EJB应用程序和MQ-RA的。如果有人能给我提供一些建议或朝着正确的方向轻推,以便我能够成功地针对WebLogic中的MQ-RA部署我的MDB应用程序,我将不胜感激!:-)

使用的产品版本:

Web逻辑V12.2.1.2.0

MQ Server和RA V9.0.0.0

采取的配置步骤:

>

在WebLogicEJB jar中。ejbjar附带xml文件。xml,我使用部署MQ-RA后指定的JNDI名称将MDB绑定到MQ-RA:

将MDB作为应用程序部署,并观察到它在endpointActivation调用期间无法连接到我的QMgr,异常为JMSWMQ0018:无法连接到连接模式为“Client”且主机名为“localhost(1414)”的队列管理器“”。


共有1个答案

曹奇文
2023-03-14

再玩了一会儿,我找到了解决办法。在这里发布答案,以防它帮助他人:-)

在我的ejb-jar.xml文件中列出的属性都是以大写字符开头的,例如:

<activation-config-property-name>DestinationLookup</activation-config-property-name>

这似乎意味着WebLogic Server没有在MQ-RAcom上设置它们。国际商用机器公司mq。连接器。入境。ActivationSpecImpl对象,该对象在初始化MDB时传递到endpointActivation(MessageEndpointFactory,ActivationSpec)调用

无论如何,将其更改为具有小写起始字符,如下所示:

<activation-config-property-name>destinationLookup</activation-config-property-name>

使WebLogic在MQ-RA ActSpecImpl对象实例上设置它们,以便正确配置。

我在服务器日志中找不到任何文档或引用来说明ActSpec属性的第一个字符的大小写很重要,或者任何内容都被忽略了。所以这很烦人,grrrrr!。

解决这个问题后,我遇到的第二个小问题是JNDI中JMS连接工厂的java.lang.ClassCastExcture,通过“连接工厂”激活配置属性引用。当我使用基于文件(. bindings)的JNDI时,它没有创建JMS MQ连接工厂实例的权限,因此无法从中提取连接信息。删除此属性并在ejb-jar.xml文件中显式设置主机名、端口、通道:

<activation-config-property>
    <activation-config-property-name>port</activation-config-property-name>
    <activation-config-property-value>1418</activation-config-property-value>
    </activation-config-property>
<activation-config-property>
    <activation-config-property-name>channel</activation-config-property-name>
    <activation-config-property-value>WEBLOGIC.SVRCONN</activation-config-property-value>
</activation-config-property>
<activation-config-property>
    <activation-config-property-name>hostName</activation-config-property-name>
    <activation-config-property-value>myhost.mydomain.com</activation-config-property-value>
</activation-config-property>

他耍了个花招,解决了问题。

 类似资料:
  • 我们有一个多模块maven项目,它有不同的平台可以运行,比如JBoss 4和JBoss 7。我们指定属性,然后将其用作工件的分类器,以及子模块中特定于平台的概要文件的激活,如: 在这些概要文件中,我们指定了提供的依赖项的版本。例如,我们进口jboss父pom: 因此,当我们将属性指定为命令行参数()时,它可以正常工作。 但是当属性在

  • 我试图在Spring Boot环境中设置一个clamav病毒扫描程序。因此,我想在属性文件clamav.properties中设置主机和端口,该文件与application.properties文件一起位于我的resources目录中。看起来是这样的: 我有这门课: 它没有连接,在日志中我得到这个: 因此,这些值显然没有设置。我做错了什么?我使用的是spring boot starter web的

  • 我在Ubuntu18.04上使用Maven 3.6.0和OpenJDK8(也在Alpine Linux上测试)。 我有一个在我的项目的根,包括我的子模块: 在文件夹中,有一个配置文件,我想根据传递给可执行文件的属性激活该配置文件: 然后我执行mvn开始构建,但配置文件从未激活: 如果我运行从我的项目的根,配置文件永远不会激活,永远不会运行 如果我运行从我的项目的根,配置文件永远不会运行。 我也尝试

  • 但却被忽略了。 是否可以使用maven激活配置文件?

  • 我试图为dev、ct、e2e和prod创建Spring Boot配置文件。我正在使用application-*.yml文件来提供配置文件特定的设置。我能够成功激活ct和prod配置文件,但我不能激活开发和e2e配置文件。 我只在Intellij中观察到过这个问题。这是IntelliJ中的bug,还是我遗漏了什么?

  • 本文向大家介绍在SAP HANA中激活属性视图,包括了在SAP HANA中激活属性视图的使用技巧和注意事项,需要的朋友参考一下 可以通过查看包中的视图名称来检查。如果名称上带有灰色菱形标记,则表示未激活视图。