Hi Oleg
I just did the follow (STS 3.0.0 + Java 7 Update 07)
1) Create a Spring Integration Project (Standalone) - Simple.
2) Add
Code:
<spring.framework.version>3.1.2.RELEASE</spring.framework.version>
<apache.activemq.version>5.6.0</apache.activemq.version>
<slf4j.version>1.7.2</slf4j.version>
3) Update
From
Code:
<spring.integration.version>2.1.2.RELEASE</spring.integration.version>
To
Code:
<spring.integration.version>2.1.3.RELEASE</spring.integration.version>
4) Add among many dependencies, these two
Code:
<!-- Spring JMS -->
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>
<version>${spring.integration.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-jms</artifactId>
<version>${spring.integration.version}</version>
</dependency>
And comment the follow maven dependency already created by the template itself
Code:
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-core</artifactId>
<version>${spring.integration.version}</version>
</dependency>
Otherwise since I have the same dependency declared twice I got
Code:
Caused by: java.lang.NoSuchFieldError: NULL
at org.springframework.expression.TypedValue.<clinit>(TypedValue.java:32)
at org.springframework.expression.spel.support.StandardEvaluationContext.setRootObject(StandardEvaluationContext.java:88)
5) Create activemq-configuration.xml in src/main/resources, it only contains
Code:
<bean id="connectionFactory"
class="org.apache.activemq.ActiveMQConnectionFactory" >
<property name="brokerURL" value="tcp://localhost:61616"/>
</bean>
6) Create my Java class
Code:
package com.manuel.jordan.integration;
import org.springframework.stereotype.Component;
import org.springframework.integration.Message;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author Ing Manuel Jordan Elera (dr_pompeii)
* @version 1.0
* @since 12/10/2012
*
*/
@Component
public class RecepcionActivator {
private static final Logger logger = LoggerFactory.getLogger(RecepcionActivator.class);
public void recepcionHandler(Message<?> message){
logger.info("recepcionHandler Message: {}", message.getPayload());
}
}
7) Create my spring-integration-recepcion.xml in src/main/resources, it contains now
Code:
<import resource="classpath:/activemq-configuration.xml" />
<context:component-scan base-package="com.manuel.jordan.integration" />
<int:channel id="recepcion" />
<!--
<int-jms:message-driven-channel-adapter id="jmsEntrada"
channel="recepcion"
connection-factory="connectionFactory"
destination-name="ordenpedido-usa"
/>
-->
<int:service-activator id="recepcionActivator"
ref="recepcionActivator"
method="recepcionHandler"
input-channel="recepcion"
/>
8) Finally the Main class
Code:
public class Main {
private static final Logger logger = LoggerFactory.getLogger(Main.class);
public static void main(String[] args) {
logger.info("main method");
final Scanner scanner = new Scanner(System.in);
ClassPathXmlApplicationContext context =
new ClassPathXmlApplicationContext("classpath:/spring-integration-recepcion.xml");
context.start();
while(true){
final String input = scanner.nextLine();
if("q".equals(input.trim())) {
break;
}
}
scanner.close();
context.stop();
context.close();
}
And when I execute my Main class I got
Code:
Caused by: java.lang.IllegalStateException: one of inputChannelName or inputChannel is required
at org.springframework.util.Assert.state(Assert.java:384)
at org.springframework.integration.config.ConsumerEndpointFactoryBean.initializeEndpoint(ConsumerEndpointFactoryBean.java:170)
at org.springframework.integration.config.ConsumerEndpointFactoryBean.getObject(ConsumerEndpointFactoryBean.java:144)
at org.springframework.integration.config.ConsumerEndpointFactoryBean.getObject(ConsumerEndpointFactoryBean.java:49)
at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:142)
... 30 more
Could you do the same in your own side?
Thank you