2010-06-29 3 views
0

스프링 통합 프로젝트 (1.0.2)에서 작업 중이며 @Header 주석을 사용할 수 없습니다.@Header 주석이 예상대로 작동하지 않습니다.

Caused by: java.lang.IllegalArgumentException: Wrong number of arguments. Expected types {class java.lang.Object, class java.lang.Long, class java.lang.Throwable}, but received values {[Payload=parp][Headers={eventId=888Foo, error=java.lang.IllegalArgumentException: Invalid message content parp, springintegration_timestamp=1277803938244, springintegration_id=726d0769-bd27-4d95-a9ea-640c1f807065}]}. 
    at org.springframework.integration.util.DefaultMethodInvoker.invokeMethod(DefaultMethodInvoker.java:71) 
    at org.springframework.integration.handler.MessageMappingMethodInvoker.doInvokeMethod(MessageMappingMethodInvoker.java:160) 
    at org.springframework.integration.handler.MessageMappingMethodInvoker.invokeMethod(MessageMappingMethodInvoker.java:107) 
    at org.springframework.integration.handler.ServiceActivatingHandler.handleRequestMessage(ServiceActivatingHandler.java:49) 
    at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:91) 
    at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:59) 

내가 잘못 뭐하는 거지 :

@Component 
public class MyTransformer { 
    @ServiceActivator(inputChannel = "inChannel", outputChannel = "outChannel") 
    public String transform(final Message<?> message, 
          @Header(value = "eventId") final Long id, 
          @Header(value = "error", required = false) final Throwable throwable) { 
     return throwable == null 
       ? "event [" + eventId +"]" 
       : "event [" + eventId +"] error: " + throwable.getMessage(); 
    } 
} 

다음 오류 메시지가있다 :

여기 내 서비스 활성화입니까?

답변

1

물론 이벤트 Id는 Long이 아닌 String이어야합니다.

해결했습니다.