La pregunta SCBCD del día: Message Driven Beans

(Imagen: Salvador Dalí - Autorretrato)

La primera del día:

Given code snippets from two files:

public class Dog{
public void onMessage(Message m){
System.out.print("1");
}
}

and

@MessageDriven
class MessageDog extends Dog implements MessageDrivenBean{
MessageDog (Message m){
System.out.print("2");
}
}

Which four code changes, when used togeteher, create a valid JMS message driven bean?

  • Make class MessageDog public
  • Make the MessageDog constructor no-arg
  • Make the MessageDog constructor public
  • Move the onMessage method to the class MessageDog
  • Change MessageDog that is not a subclass of Dog
  • Make class MessageDog implement MessageListener instead of MessageDrivenBean.

Hora de repasar los requisitos para construir un MDB (Message Driven Bean) válido. Veamos:

  • La clase debe ser pública, no final y no abstracta. Por lo tanto, debemos considerar la primera opción
  • La clase debe tener un constructor público que no reciba argumentos. Entonces, la segunda y la tercera opción también son necesarias para que esto funcione.
  • La clase debe implementar, directa o indirectamente, la interfaz message listener necesaria. De tratarse de un MDB JMS, la interfaz a implementar es javax.jms.MessageListener. Para esto, debemos considerar la cuarta opción ( el implementar jax.ejb.MessageDrivenBean es opcional) de modo que se implemente javax.jms.MessageListener de manera indirecta, ya que el método onMessage está en la clase padre Dog.
Entonces, nos quedaríamos con la primera, segunda, tercera y quinta opción.

Pregunta tomada de ExamWorx

Publicar un comentario