Я новичок в java, и я пытаюсь прочитать & напишите объект коллекции ArrayList<T>
в очередь JMS. Я могу записать объект в очередь, используя следующий фрагмент.Как читать объект ArrayList <T> из очереди JMS?
List<Request> reqList = new ArrayList<Request>();
... code that populates the list ...
ObjectMessage om = session.createObjectMessage((Serializable) requestList);
выше часть кода работает отлично, и я могу видеть записи в JMS
очереди. Теперь я не могу прочитать записи из очереди, а ниже - фрагмент кода.
@Override
public void onMessage(Message msg)
{
try {
String msgText;
msgText = msg.toString();
List<Request> requestList = null;
requestList = msg.getBody(ArrayList<Request>);
} catch (JMSException jmse) {
System.err.println("An exception occurred: " + jmse.getMessage());
}
}
я не мог закончить метод, потому что я получаю сообщение об ошибке в строке 4. Метод getBody ожидает тип класса, где я не в состоянии обеспечить. Я пробовал с различными вариантами, такими как Request[].class
, ArrayList.class
и request.getClass()
.
Но никто из них не работает. Может ли кто-нибудь помочь мне в указании правильного типа для ArrayList<T>
или List<T>
и как его получить?
Просто для информации, метод декларации getBody в javax.jms
АФИ
public <T extends Object> T getBody(Class<T> type) throws JMSException;
Я ценю вашу помощь.
С уважением.