2016/09/29

STS 에러 - 01

STS 3.7.3 버전을 사용하고 있다.
이 글을 쓰는 시점에 spring.io 사이트에는 STS 3.8.1 버전이 올라와 있는 상태이다.
새 버전이 나왔다고 매번 직접 다운받아 쓰는건 어지간히 귀찮은 일이 아닐수가 없는데
답답한게 STS 3.7.3 버전에서는 'Automatic updates download' 기능이 제대로 작동하지 않는다.
STS를 실행하면 백그라운드로 업데이트 체크를 하다가 어느 시점에 아래와 같이 'Automatic updates download' has encountered a problem. 에러창이 뜬다.

에러의 자세한 내용은 아래와 같다.

An error occurred while collecting items to be installed
session context was:(profile=DefaultProfile, phase=org.eclipse.equinox.internal.p2.engine.phases.Collect, operand=, action=).
No repository found containing: osgi.bundle,org.sonatype.m2e.buildhelper,0.15.0.201405280027
No repository found containing: osgi.bundle,org.sonatype.m2e.egit,0.14.0.201509090157
No repository found containing: org.eclipse.update.feature,org.sonatype.m2e.buildhelper.feature,0.15.0.201405280027
No repository found containing: org.eclipse.update.feature,org.sonatype.m2e.egit.feature,0.14.0.201509090157

위 문제는 STS 3.7.3 버전의 버그로 STS 이슈트래커에 등록된 상태이다.
링크를 따라가도 나오겠지만 해결방법은 아래의 순서대로 실행하면 해결된다.

1. 'Preferences > Available Software Sites' 메뉴로 이동
2. 모든 항목을 체크와 선택을 하고 'Export'
3. STS 종료
4. STS 다시 시작
5. 'Preferences > Available Software Sites' 메뉴로 다시 이동
6. 앞서 'Export' 한 파일을 'Import'
7. 'Help > Check for updates' 실행

2016/09/07

Spring DB 연결 에러 - 01

몇 달 만에 보는 소스를 실행을 시키니 디비 연결 시에 한없이 기다리다 아래와 같은 에러를 뱉는다.


우선 개발 환경을 보자면...

개발 머신 : 맥북 (엘캐피탄)
IDE : STS
언어 : Java
프레임웍 : Spring 4+
DB Connection URL : jdbc:postgresql://localhost:5432/dbName
DB 머신 : VirtualBox Guest (Win 10)
VBox Guest 네트웍 : NAT (port forwarding TCP 127.0.0.1:5432 -> 10.0.2.15:5432)
DB : PostgreSQL 9.5

늘 그래왔던 것 처럼
잘 되던 건데 안된다... 하하하
너무 오랜만에 해보나...
특히나 예외 메세지가 마음에 안든다. null 이라니..... null 이라니!!!
답답한 마음에 PGStream 소스도 까서
org.postgresql.core.VisibleBufferdInputStream wrapped.read(buffer, endIndex, canFit) 까지 가니까 한참을 기다리다 -1을 뱉어버린다.
wrapped 변수는 InputStream 인터페이스인데 구현체를 찾기가 귀찮아서 저기까지만 봤다.
그리고 검색을 하니 Re: Locking on PGStream.ReceiveChar(PGStream.java:256)를 발견!!
하고 보니 윈도우 포트 문제 ㅠㅠ
하아.. 도대체 내가 언제 방화벽을 켜둔건가..

여튼 정답은 OS의 방화벽 문제!!