Open API Delivery Platform :: 2013/08/05 01:13

만들고 있는 Open API Delivery Platform은 크게 다음과 같이 나누어 진다.

- Gateway : NginX + Custom Module
- Memory Data Grid : Infinispan
- Log Collector : Flume NG
- Log Analyzer : Hadoop Map/Reduce

Gateway와 Memory Data Grid간의 통신은 Restful API로 하기로 했다.
그런데 문제는 Memory Data Grid와 API Center간에도 Restful API로 데이터 연동을 해야 한다는 것.

Jboss가 너무 무겁기 때문에, Jetty 9와 Infinispan 6을 Embedding하여 하나로 묶고, Restful API를 제공할 수 있는 별도의 Java Application을 작성하기로 했다. Jetty + Jersey + Infinispan을 하나로 묶어서 jar 패키지로 만들기 시작했다.

그런데, 패키지로 배포하는 Jetty에서 제공하는 라이브러리들과 Infinispan에서 제공하는 라이브러리들이 버전이 달라 충돌을 일으켰다. 실행은 되지만, 가장 중요한 Restful API의 Path 인식이 제대로 안 된다..-.-

javax.ws.rs.core Module이 뭔가 오작동을 일으키는데 무엇 때문에 @Path Annotation을 인식하지 못하는지 한참을 헤매다가, 라이브러리들 간의 Dependency로 인한 버전 충돌을 의심하게 되었다.

그래서 결국 라이브러리들의 Dependency를 관리하기 위해서 Maven을 손대게 되었다.
행여나 최악의 경우를 대비해서 Infinispan만 내장한 Jboss용 WAR를 하나 만들어 놓고, 수십번의 삽질 끝에 드디어 최적의 라이브러리들이 담긴 jar 패키지를 완성했다. 크흑...

이건 정말 인간 승리다.
지난 주말 이틀 간의 시간을 돌리도!

2013/08/05 01:13 2013/08/05 01:13
Trackback Address :: http://www.yongbi.net/trackback/574
[로그인][오픈아이디란?]
오픈아이디로만 댓글을 남길 수 있습니다
Name
Password
Homepage

Secret
< PREV |  1  |  ...  216  |  217  |  218  |  219  |  220  |  221  |  222  |  223  |  224  |  ...  566  |  NEXT >