Magic of Love

Spring Integration을 사용할 때, Spring Integration과 상관 없지만 주의할 점 본문

Software

Spring Integration을 사용할 때, Spring Integration과 상관 없지만 주의할 점

NYA 2013.08.06 10:23

1. XML Schema Location 은 정확히 지정하자

Spring Integration 의 <service-activator> 를 쓰는데, 이상했다..

이클립스가 제시하는 poller 의 attribute 와 Spring Integration Reference Manual 에 나오는 attribute 가 달랐는데, 이클립스가 제시하는 대로 poller 를 설정하면, 아래와 같은 익셉션이 발생한다.

 

nested exception is org.xml.sax.SAXParseException: cvc-complex-type.2.4.a: Invalid content was found starting with element 'int:interval-trigger'. One of '{"http://www.springframework.org/schema/integration":transactional, "http://www.springframework.org/schema/integration":advice-chain}' is expected.

구글링하다보니 이클립스가 제시하는 항목들이 Spring Integration 구 버전인 것 같은 느낌...?

혹시나하고 schemaLocation 에 지정하는 xsd 경로를, http://www.springframework.org/schema/integration/spring-integration.xsd 에서 http://www.springframework.org/schema/integration/spring-integration-2.1.xsd 으로 바꾸었더니.. 이클립스가 제시하는 attribute 가 달라짐. 잘됌 -_-;;

 

2. Maven 을 쓴다면, pom.xml 에 Dependency 를 추가했는지 확인하자

혹시!

Spring Integration 만 디펜던시에 추가하고, Spring Integration 하위 컴포넌트는 디펜던시에 추가하지 않은게 아닌가!! (예를 들어 spring-integration-core 만 넣고 spring-integration-ip 는 안 넣은 상태에서 context xml 에 spring-integration-ip 관련 빈 설정을 한 경우)

뭔가 돌아가야 하는데, 이상하게 시작이 안 된다거나, TCP, UDP 통신이 안된다면.. 디펜던시를 확인하자. ㅠㅠ .java 소스가 아닌, .xml 에 빈에서만 Spring Integration IP 를 쓴다면 컴파일 에러도 안나고, 시작할 때 익셉션은 안 뜨는데 뭔가 안 되더라. 알고보니, 메이븐 디펜던시에 안 들어가 있었음 -_-;

  <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-ip</artifactId>
   <version>${spring.integration.version}</version>
  </dependency>

 

쓸데없이 삽질을 오래해서 남겨둠. 엉엉

0 Comments
댓글쓰기 폼