Como pegar uma Mensagem JMS de uma fila

Pessoal,

Estou com um problema para terminar uma aplicação jms aqui. Seguinte, tenho Broker conectado, tudo direitinho, só que quando a mensagem é enviada a aplicação captura mas não estou sabendo como tratar essa mensagem que chega da fila.Alguém pode me ajudar?

Cara eu tenho isso feito,só n ta nessa maquina q estou no momento.
Posta ai teu codigo pra eu ver se lembro como fiz.

oi raf4ever,

cara … vou postar o código mas acho que o meu problema é que não estou sabendo como enviar ou receber um arquivo xml, que é o que realmente eu preciso.
se puder me ajudar , agradeço…já n sei mais como resolver isso.

Esse é meu listerner:

public Listener() throws Exception {
		BasicConfigurator.configure();
		applicationContext = new ClassPathXmlApplicationContext(
				"/applicationContext.xml");
		configuracaoDao = (ConfiguracaoDao) applicationContext
				.getBean("configuracaoDao");

		configuracao = configuracaoDao.getConfiguracao();

		// configuracao webShere MQ
		MQConnectionFactory factory;
		factory = new MQConnectionFactory();
		factory.setTransportType(JMSC.MQJMS_TP_CLIENT_MQ_TCPIP);
		factory.setQueueManager(configuracao.getGerenciadorFila());
		factory.setHostName(configuracao.getIp().toString());
		factory.setPort(configuracao.getPorta());
		factory.setChannel(configuracao.getCanal());
		Connection connection;
		connection = factory.createConnection();
		Session session;
		boolean transacted = false;
		session = connection
				.createSession(transacted, Session.AUTO_ACKNOWLEDGE);
		Queue queue = session.createQueue(configuracao.getFilaLocal());
		MessageConsumer consumer = session.createConsumer(queue);
		consumer.setMessageListener(this);
		connection.start();
	}

	public void onMessage(Message msg) {
           
            
            MessageController controller = (MessageController) this.applicationContext
				.getBean("mensageController", MessageController.class);
		controller.setMessage(msg);
		controller.run();
	}

	public void inicarConexao() throws Exception {
		new Listener();
		while (true) {
			Thread.sleep(10000);
		}
	}

E nessa classe eu tenho que receber a mensagem, desserializa-la e popular em um objeto, só que quando eu tento a desserialização, o objeto fica todo nulo.

	public void run() {
		super.run();

		try {
			this.mensagemRequisicao = this.convertMessage(originalMessage);
			Service<MensagemRequisicao> service = ServiceFactory
					.getService(this.mensagemRequisicao);
			service.setApplicationContext(applicationContext);

			mensagemResposta = service.execute(mensagemRequisicao);
			dispatcher = (Dispatcher) applicationContext.getBean("dispatcher");
			dispatcher.dispatch(mensagemResposta);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public void setMessage(Message message) {
		this.originalMessage = message;
	}

	@SuppressWarnings( { "restriction", "unchecked", "deprecation" })
	protected MensagemRequisicao convertMessage(Message message)
			throws Exception {
		MensagemRequisicao mensagemRequisicao = new MensagemRequisicao();
		try {
			JAXBContext context = JAXBContext
					.newInstance(MensagemRequisicao.class);
			Unmarshaller unmarshaller = context.createUnmarshaller();
                        ObjectMessage mensagem = (ObjectMessage) message;  
			Serializable serializable = mensagem.getObject();
			String mensagemChegada = serializable.toString();
			mensagemRequisicao = (MensagemRequisicao) unmarshaller.unmarshal(fr);
		} catch (Exception e) {
			// TODO: handle exception
			e.printStackTrace();
		}		
		return mensagemRequisicao;
	}

Bom,vc poderia fazer o seguinte:
Em vez de passar um arquivo xml,poderia usar uma API de parsing pra transformá-lo em objeto,passar esse objeto e usar a classe ObjectMessage da API do JMS pra receber.
Foi assim que eu fiz,e deu certo.

oi raf4ever,
desculpe perguntar, mas como assim api de parsing?
e como seria a transformaçao?
por um acaso seria algo como uma serializaçao?