WebLogic Не удалось найти адаптер ресурсов jmsra во время развертывания веб-приложения - PullRequest
0 голосов
/ 10 июля 2019

При переносе приложения из существующего 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();
    }
}

1 Ответ

0 голосов
/ 11 июля 2019

Отвечая на мой собственный вопрос: решение для меня было удалить resourceAdapter = "jmsra" из @JMSDestinationDefinitions в исходном коде Java. Кажется, что с WebLogic 12.2.1.0.0 все в порядке с этим свойством, но не с WebLogic 12.2.1.3.0. В некоторой документации предполагается, что оно устарело и, возможно, было удалено, хотя я не смог найти какие-либо заметки о выпуске из Oracle на тема.

...