@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? - как вообще правильно в данном случае?