我试图在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)”的队列管理器“”。
再玩了一会儿,我找到了解决办法。在这里发布答案,以防它帮助他人:-)
在我的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中激活属性视图的使用技巧和注意事项,需要的朋友参考一下 可以通过查看包中的视图名称来检查。如果名称上带有灰色菱形标记,则表示未激活视图。