Linux에서는 below 1024(1024 아래) 밑의 포트들을 root가 아닌 권한인 유저들이 여는 것을 허용하지 않는다


이것 땜에 좀 문제가 있었는데, 2가지 해결 방법이 있다.


1. iptables에서 port fowarding을 해준다.

reroute를 통해서 8080을 80으로 포워딩해주는 방법이 있다.

(root 권한에서 실행)

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080


2. authbind를 설치한다.

 authbind는 debian 패키지에 있는 1024 이하의 포트들을 root가 아닌 유저들이 열 수 있게 하는 것. 사실 나도 1번이 하기 싫어서 찾아보다가 이번에 처음으로 알게 되었다.


원래대로 서비스에 설치해서 쓰는거면 /etc/init.d/tomcat* (해당버전)에 들어가서 authbind 를 YES인가 OK로 설정하면 되는데, 나는 서비스에 설치해서 안쓰니까..험난하다


우선 authbind를 설치한 다음에.. 80포트를 접근 가능하게 바꿔준다. 백형 블로그 참고했다

http://www.2ality.com/2010/07/running-tomcat-on-port-80-in-user.html


ㄱ. authbind를 설치

ㄴ. root 로 authbind 폴더에 쓸 포트(80)을 chown으로 쓸 계정에 줌. 이 백형은 glassfish를 쓰지만 난 촌스럽게 톰캣 쓰므로 톰캣으로 간다

* ipv6은 지원안한다는데, 음.. 아직 신경쓰지 않기로 했다. nginx경우에는 신경을 좀만 쓰면 되지만, 이 놈은 아닌 듯. 그렇다고 톰캣을 root로 올릴 순 없잖음...

ㄷ. setenv.sh 에 CATALINA_OPTS에 IP4stack   쓴다고 설정

ㄹ. startup.sh에 authbind를 통해 구동하게 강제로 바꿈


되나 확인해보면 됨

Posted by TY
,

아.. 속상하다 진짜.ㅠㅠ 게을러서 망함 ㅠㅠ

코드 테이블에 관련된 부분을 보고 있는데 자꾸 iBatis에서 본 적도 없는 에러가 나는 것이었다.

 에러 내용인즉슨..

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.jdbc.UncategorizedSQLException: SqlMapClient operation; uncategorized SQLException for SQL []; SQL state [null]; error code [0];   

--- The error occurred in sqlmap/dummy.xml.  

--- The error occurred while applying a result map.  

--- Check the code.CodeResult.  

--- The error happened while setting a property on the result object.  

--- Cause: net.sf.cglib.beans.BulkBeanException; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:   

--- The error occurred in sqlmap/dummy.xml.  

--- The error occurred while applying a result map.  

--- Check the code.CodeResult.  

--- The error happened while setting a property on the result object.  

--- Cause: net.sf.cglib.beans.BulkBeanException



였다.

인터넷에는

1. 아마 ResultMap에 property랑 매치가 안될 것이다
2. 네가 ResultMap 지정해 준 클래스에 getter, setter가 제대로 지정이 안 되있을 것이다
3. ResultMap에 쓸 class랑 ResultMap의 property수가 맞지 않을 것이다

였는데 다 안되는거였다.

찾아오는 멘붕.. 

알고보니까 INT형 값에 기본값이 들어있지 않으면 에러가 나는거였다. 

다른걸 하고 있다가 번뜩이며 생각나서 그냥 막 값을 넣어보았더니 갑자기 하나는 받아오는데 성공하고 다음꺼부터 실패하더라 ㅠㅠ

이제 웹/웹서버 개발 나름 만 3년 정도 채운 것 같은데..

스프링은 배운지 아직도 채 1년이 되지 않았기 때문에 삽질이 너무 많아서 작업 속도가 영 안나오는 것 같다.

대형 프레임웍을 수용할 수 있으려면 게임 서버를 만들건 뭘 만들건 스프링같은 프레임웍을 쓰는게 좋을 것 같은데...

php처럼 막 짤 수가 없는 부분이 답답하다. 그렇다고 Servlet을 쓰자니 php하는 만 못하는 것 같고... 언제쯤 능숙해질까? 걱정이다. 

spring에러는 ASP보다 해석하기가 더 어려운 것 같다 -_- ASP구버전도 에러 해석할 때 정말 힘들었는데..

어쨌든 오늘은 글자 하나 써주긱 귀찮아서 삽질을 좀 오래 했다.

오늘의 교훈: column에 default value 설정을 꼼꼼히 해주자 

 

Posted by TY
,
엄청 많은데 그 때 급급해서 다 못 적어 놓은 것 같다.... 아쉽다


iBatis SqlMap 에서 DOCTYPE root 'null' 발생시..

  • 위에 주석같이 생긴걸 빼먹거나 지우는 경우가 있는 것 같다. 하지만 여기엔 그 주석을 꼭 써주어야 한다. DOCTYPE 을 정의해주기 때문...
  • sqlMapConfig 와 sqlMap 파일 각각 다르기 때문에 따로 적어 줄 것
  • http://www.bywoong.com/?p=1816

Error parsing XPath '/sqlMap/update'. Cause: java.util.NoSuchElementException

  • 조건에 #을 빠뜨린 것
  • 각각의 값에 #이 붙어있는지

Error creating bean with name '-----': Injection of resource fields failed; ....

  • 톰캣을 올리다 에러가 난다
  • Service Interface 를 Implements 한 클래스에 @Service 가 붙어있는지 확인하자


'study > java' 카테고리의 다른 글

java.net.BindException: permission denied: 80  (0) 2013.09.22
간단한 jpg(jpeg) 리사이징하는 java 클래스  (0) 2013.03.12
Posted by TY
,