Требуются ли спецификации активации для bean-компонентов, управляемых сообщениями?

У меня есть MDB, отличный от JMS, который я устанавливаю на сервер Websphere Liberty.

package mdb.test;

import javax.ejb.MessageDriven;

@MessageDriven()
public class TheMDB implements MyOwnListener {

  public TheMDB() {}

  @Override
  public void onMyOwnMessage(MyOwnMessage message) {}

}

Без дальнейшей настройки сервер выдает следующее сообщение:

[ПРЕДУПРЕЖДЕНИЕ] CNTR4015W: Конечная точка сообщения для TheMDB управляемого сообщениями bean-компонента не может быть активирована, поскольку mdb.test/TheMDB спецификация активации недоступна. Конечная точка сообщения не будет получать сообщения, пока не станет доступна спецификация активации.

Должны ли MDB иметь спецификацию активации? Я бы хотел, чтобы он просто активировался, без необходимости добавлять дополнительную конфигурацию на сервер.


person Ben Cox    schedule 08.08.2016    source источник
comment
Что генерирует сообщения, которые будет принимать MDB? Как вы уведомите MDB о наличии сообщения?   -  person kaczyns    schedule 08.08.2016
comment
Скорее всего, это будет мой собственный адаптер ресурсов. Однако в настоящий момент я не могу активировать MDB, в результате чего появляется это сообщение.   -  person Ben Cox    schedule 08.08.2016


Ответы (2)


По сути, сервер сообщает вам, что он нашел конечную точку сообщения, но ничто не доставляет ей сообщения. Вам необходимо добавить спецификацию активации (JMS или JCA), чтобы компонент мог получать сообщения. Некоторая информация об определении спецификаций активации JCA:

http://www.ibm.com/support/knowledgecenter/SSEQTP_8.5.5/com.ibm.websphere.wlp.doc/ae/twlp_jca_config_actspec.html

Я не знаю, как активировать компонент без привязки к спецификации активации. Поскольку его функция заключается в обработке сообщений, от него мало пользы без спецификации активации. Вам может потребоваться фиктивная часть вашего RA, чтобы закодировать спецификацию активации для достижения прогресса, даже если она еще не генерирует сообщения.

person kaczyns    schedule 08.08.2016

Компоненты Java EE, управляемые сообщениями, которые используются в качестве конечных точек сообщений, должны быть развернуты с использованием ActivationSpecification, которая определена в конфигурации адаптера ресурсов JCA 1.5 (или новее) (ra.xml).

person daveZ    schedule 10.08.2016