Bom dia galera, estou com problema em um exemplo que peguei na internet utilizando o apache camel, nao da erro, ai pode ser que eu esteja errando nas libs, mas ja tentei trocar e nao obtive sucesso, segue abaixo o codigo:
A classe produtora:
public class PojoProducer {
@Produce(uri = "activemq:queue:fila.cartao.visa")
private ProducerTemplate producerVISA;
@Produce(uri = "activemq:queue:fila.cartao.master")
private ProducerTemplate producerMASTER;
@Produce(uri = "activemq:queue:fila.cartao.outros")
private ProducerTemplate producerOutros;
@Consume(uri = "file://C:/temp/arquivos")
public void quandoTemArquivosMandaParaFilaJMS(String msg,@XPath("/cc/bandeira/text()") String bandeira) {
System.out.println(".....................................................................");
if ("Master".toUpperCase().equals(bandeira.toUpperCase())) {
producerMASTER.sendBody(msg);
} else if ("Visa".toUpperCase().equals(bandeira.toUpperCase())) {
producerVISA.sendBody(msg);
}
else {
producerOutros.sendBody(msg);
}
}
}
A classe consumer:
[code]public class PojoConsumer {
private XStream xstream;
@Autowired
@Qualifier("visa")
private CartaoService visa;
@Autowired
@Qualifier("master")
private CartaoService master;
@Autowired()
@Qualifier("outros")
private CartaoService outros;
public PojoConsumer() {
xstream = new XStream();
xstream.alias("cc", CartaoCredito.class);
}
private CartaoCredito xmlToPojo(String msg){
return (CartaoCredito)xstream.fromXML(msg);
}
@Consume(uri = "activemq:queue:fila.cartao.visa")
public void consumeVISA(String msg){
CartaoCredito cc = xmlToPojo(msg);
visa.efetuarPagamento(cc);
}
@Consume(uri = "activemq:queue:fila.cartao.master")
public void consumeMASTER(String msg){
CartaoCredito cc = xmlToPojo(msg);
master.efetuarPagamento(cc);
}
@Consume(uri = "activemq:queue:fila.cartao.outros")
public void consumeOutros(String msg){
CartaoCredito cc = xmlToPojo(msg);
outros.efetuarPagamento(cc);
}
}[/code]
O main:
public class CamelMain{
public static void main(String[] args) {
try{
new ClassPathXmlApplicationContext(new String[] {"classpath:camel.xml"});
}catch(Exception e){
e.printStackTrace();
}
System.out.println("Esta rodando.....................................");
}
}
O xml do spring:
[code]<?xml version="1.0" encoding="UTF-8"?>
<camelContext xmlns="http://camel.apache.org/schema/spring" />
<bean id="activemq" class="org.apache.activemq.camel.component.ActiveMQComponent">
<property name="brokerURL" value="tcp://localhost:61616" />
</bean>
<context:component-scan base-package="testeCamel" />
<bean class="testeCamel.PojoConsumer" />
<bean class="testeCamel.PojoProducer" />
[/code]
A lista dos jar no meu classpath:
xstream-1.4.4.jar
commons-logging-1.1.3.jar
mysql-connector-java-5.1.25-bin.jar
spring-aop-4.0.0.M1.jar
spring-aspects-4.0.0.M1.jar
spring-beans-4.0.0.M1.jar
spring-build-src-4.0.0.M1.jar
spring-context-4.0.0.M1.jar
spring-context-support-4.0.0.M1.jar
spring-core-4.0.0.M1.jar
spring-expression-4.0.0.M1.jar
spring-instrument-4.0.0.M1.jar
spring-instrument-tomcat-4.0.0.M1.jar
spring-jdbc-4.0.0.M1.jar
spring-jms-4.0.0.M1.jar
spring-orm-4.0.0.M1.jar
spring-oxm-4.0.0.M1.jar
spring-test-4.0.0.M1.jar
spring-tx-4.0.0.M1.jar
spring-web-4.0.0.M1.jar
spring-webmvc-4.0.0.M1.jar
spring-webmvc-portlet-4.0.0.M1.jar
spring-websocket-4.0.0.M1.jar
ojdbc6.jar
activemq-camel-5.8.0.jar
camel-core-2.10.3.jar
camel-jms-2.10.3.jar
camel-krati-2.11.1.jar
camel-spring-2.10.3.jar
quartz-2.2.0.jar
slf4j-api-1.6.6.jar
xmlbeans-1.0.jar
activemq-all-5.1.0.jar
commons-dbcp-all-1.3.jar
jcl-over-slf4j-1.6.6.jar
caso queiram dar uma olhada no link do exemplo segue o link: http://diego-pacheco.blogspot.com.br/2010/02/camel-e-activemq-na-pratica-usando.html
Ao executar o main ele imprimi o sysout da classe main mas nao executa os metodos anotados com @Produce e @Consume, desde ja valeu 