Problemas com JMS

3 respostas
cs.santos0

Eai pessual, blz?

estou com um problema com jms…porem nao conheço praticamente nda disso…

tenho esse metodo:

public void sendJmsMessage(SinivemObject so) throws JMSException{ try { conn = sf.createTopicConnection(); try { topic = (JBossTopic) context.lookup("topic/sinivemTopic"); session = (JBossSession) conn.createTopicSession(false, JBossSession.AUTO_ACKNOWLEDGE); System.out.println("********************JMS CRIOU A SESSAO"); conn.start(); this.send(so); } catch (NamingException e) { System.out.println("********************JMS EXCEPTION" + e.getMessage()); e.printStackTrace(); } } catch (JMSException e) { e.printStackTrace(); } }

e quando ele é chamado, gera essa exceção:

Last packet sent to the server was 0 ms ago.)) 12/03/2010 11:40:07 ERROR JobRunShell:211 - Job DEFAULT.Envio threw an unhandled Exception: java.lang.LinkageError: javax/jms/TopicConnection at br.com.envioemail.sinivem.SinivemSender.sendJmsMessage(SinivemSender.java:45) at br.com.mapfre.processo.Envio.execute(Envio.java:277) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525) 12/03/2010 11:40:07 ERROR ErrorLogger:2185 - Job (DEFAULT.Envio threw an exception. org.quartz.SchedulerException: Job threw an unhandled exception. [See nested exception: java.lang.LinkageError: javax/jms/TopicConnection] at org.quartz.core.JobRunShell.run(JobRunShell.java:213) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:525) Caused by: java.lang.LinkageError: javax/jms/TopicConnection at br.com.envioemail.sinivem.SinivemSender.sendJmsMessage(SinivemSender.java:45) at br.com.mapfre.processo.Envio.execute(Envio.java:277) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ... 1 more

alguem ai saberia a razão dessa exception?
vlw

3 Respostas

V

Cara, checa direitinho que vc acha o erro.

CarvalR2

Como escrito, o problema está na classe TopicConnection.

Talvez você esteja com duas libraries (.jar) no classpath que possuem esta mesma classe.
Se está fazendo deploy no jboss por exemplo, ele já possui esta classe dentro de um dos jar do diretorio lib.
Então não é correto colocar o jar contendo a TopicConnection dentro do teu EAR.

uma mesma classe em dois locais diferentes, são duas classes diferentes do ponto de vista do classloader.

com.teste.Teste no jar teste1.jar
com.teste.Teste no jar teste2.jar

A classe eh a mesma, mas no class loader ela eh carregada como classes diferentes:

teste1.jar/com/teste/Teste
teste2.jar/com/teste/Teste

E se vc tenta fazer cast de um para outro, vc possivelmente terá um LinkageError.

Se não rolar, posta aí

Romilson

cs.santos0

cara, nao entendi mto bem oq vc quiz dizer…

eu tenho apenas um jar que é a aplicação jms nas libs do jboss…mais nda…

alem do que eu percebi, essa classe TopicConnection é uma lib que ja vem no jboss, num é?

alguem tem alguma sugestao de como tirar esse erro?

vlw

Criado 12 de março de 2010
Ultima resposta 12 de mar. de 2010
Respostas 3
Participantes 3