@Stateless
public class JmsSender {
@Inject
private JMSContext context;
@Resource(mappedName = "java:/student_queue")
private Queue queue;
public void send(String messageToSend){
context.createProducer().setProperty("type","String");
context.createProducer().send(queue, messageToSend);
}
public void send(Message message){
context.createProducer().setProperty("type","Message");
context.createProducer().send(queue,message);
}
public void send(Serializable serializable){
context.createProducer().setProperty("type","Serializable");
context.createProducer().send(queue,serializable);
}
}
//будет ли корректно работать метод в классе Receive:
@JMSDestinationDefinition(name = "java:/student_queue", interfaceName = "javax.jms.Queue")
@MessageDriven(
mappedName = "java:/student_queue",
name = "ExampleMDB", activationConfig = {
@ActivationConfigProperty(propertyName = "destination", propertyValue = "java:/student_queue")})
public class MessageReceiver implements MessageListener {
@Override
public void onMessage(Message msg) {
BusinessLogic businessLogic = new BusinessLogic();
businessLogic.getMessage(msg);
}
}
//интересует строка с типом входного параметра Message msg - а если я туда отправил String или Serializable? - как вообще правильно в данном случае?