2012-11-07 2 views
3

내 프로젝트에서 Spring MVC와 Camel을 사용하고 있지만 producerTemplate을 Autowired 할 수 없다는 문제가 발생했습니다. 아래에 세부 사항을 확인하시기 바랍니다Camel producerTemplate이 스프링 MVC에 삽입되지 않았습니다

파일의 web.xml :

<context-param> 
<param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/dispatcher-servlet.xml</param-value> 
</context-param> 

파일 ispatcher-servlet.xml에

<import resource="camel-config.xml"/> 

파일 낙타-config.xml에 정의 camelContext

<context:component-scan base-package="com.myproject.camel.routes"/> 
<camelContext xmlns="http://camel.apache.org/schema/spring" id="myproject.camel"> 
    <contextScan/> 
<template id="producerTemplate"/> 
</camelContext> 

그리고 여기 내 JAVA 클래스가 있습니다 :

package com.myproject.connector.camel; 
public class CamelConnectorImp{ 
    @Autowired 
    private ProducerTemplate producerTemplate; //This is null after starting 
    producerTemplate.requestBodyAndHeaders(serviceEndpoint,request, headers); 
... 
} 

누군가 내가 잘못하고있는 것을 지적 할 수 있습니까?

답변

1

아마도 CammelConnectorImp가 Spring에 알려진 Bean인지 확인해야 할 것입니다.

@Bean 
public class CamelConnectorImp{ .. 

(업데이트 :

@Bean 주워 가도록 (듯이), 당신은 아마뿐만 아니라,이 POJO를 검색해야합니다

<context:component-scan base-package="com.myproject.camel.routes,com.myproject.connector.camel"/> 

또는 아마 도움이 될 것입니다 비슷한.

+0

감사합니다. Petter, @Component를 사용해 보았지만 작동하지 않았습니다. – Uda

0

오케이 마침내 알아 냈습니다. 원인은 내가 응용 프로그램 컨텍스트에서 콩을 사용하지 않은 것을했다, 대신,이 방법에 의해 해당 커넥터,

IConnector connector = new CamelConnectorImp(); 

이 잘못, camelContext이 인스턴스에없는 것은 놀라운 일을 만들었습니다.

내 잘못입니다.

+1

예, 답안 상태와 마찬가지로 CamelConnectorImp를 Bean으로 선택해야합니다. –

+0

페터 감사합니다! – Uda

관련 문제