При переносе приложения из существующего WebLogic 12.2.1 в новое я получаю исключение при попытке развернуть веб-приложение, использующее очереди JMS.
В журнале сервера ошибка гласит:
weblogic.application.ModuleException: javax.resource.ResourceException: [Connector:199311]Failed to find Resource Adapter:jmsra The application information: my_webapp_name#my_webapp_name#my_webapp_name The JNDI name:java:comp/env/queue/comm at
weblogic.application.internal.ExtensibleModuleWrapper.activate(ExtensibleModuleWrapper.java:123)
...
Caused By: javax.resource.ResourceException: [Connector:199311]Failed to find Resource Adapter:jmsra The application information: my_webapp_name#my_webapp_name#my_webapp_name The JNDI name:java:comp/env/queue/comm
at weblogic.connector.external.RAUtil.createAdministeredObject(RAUtil.java:301)
queue / comm существует как очередь JMS, и модуль, который содержит ее, имеет ту же цель, что и веб-приложение, которое не удается развернуть.
Бины, использующие очередь, имеют все определения, такие как:
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
version="3.0">
<enterprise-beans>
<message-driven>
<ejb-name>BeanName</ejb-name>
<ejb-class>com.acme.beans.BeanName</ejb-class>
<activation-config>
<activation-config-property>
<activation-config-property-name>destinationJNDIName</activation-config-property-name>
<activation-config-property-value>queue/comm</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>destinationType</activation-config-property-name>
<activation-config-property-value>javax.jms.Queue</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>acknowledgeMode</activation-config-property-name>
<activation-config-property-value>acknowledgeMode</activation-config-property-value>
</activation-config-property>
<activation-config-property>
<activation-config-property-name>messageSelector</activation-config-property-name>
<activation-config-property-value>MESSAGE_TYPE='BeanMessage'</activation-config-property-value>
</activation-config-property>
</activation-config>
</message-driven>
</enterprise-beans>
</ejb-jar>
Мне не удалось обнаружить разницу в конфигурации двух экземпляров WebLogic. wljmsra.rar
находится в каталоге wlserver/server/lib
обоих экземпляров. И в том же модуле есть фабрика соединений, которая сообщает о запуске.
РЕДАКТИРОВАТЬ 11/07/2019
Я нашел фрагмент кода, который ссылается на jmra
import javax.jms.JMSDestinationDefinition;
import javax.jms.JMSDestinationDefinitions;
@JMSDestinationDefinitions({
@JMSDestinationDefinition(name = Resources.COMM_QUEUE, resourceAdapter = "jmsra", interfaceName = "javax.jms.Queue", destinationName = "CommQueue", description = "Queue for communication between applications") })
public class Resources {
public static final String COMM_QUEUE = "queue/comm";
private Resources() {
super();
}
}