1. GET 방식 한글깨짐
- server.xml 에 아래 URIEncoding 옵션 추가

<Connector port="9000" protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443"
    URIEncoding="euc-kr"/>

 

2. post 방식 한글깨짐
- web.xml에 jsp 확장자에 대하여 Filtering class 추가

      <filter>
        <filter-name>CharacterEncodingFilter</filter-name>
        <filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
        <init-param>
            <param-name>encoding</param-name>
            <param-value>EUC-KR</param-value>
        </init-param>
    </filter>

    <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>


SimpleDateFormat sdf = new SimpleDateFormat("YYYYMMdd");

를 자주 사용합니다.

 

String today = sdf.format(Calendar.getInstance().getTime());

 

문자열로 변환해서 사용할때 유용합니다. 하지만 위의 코드에는 오묘한 버그가 숨어있습니다.

프로젝트 말미에 급하게 추가하면서 테스트하고 바로 적용하여 오픈.

 

하지만 12월 28일이 되어서야 위의 코드에 문제가 있음이 발각(?) 되었습니다.

 

분명 어제까지 잘 되던 로직이 12월 28일이 되면서 오류를 내뱉기 시작했습니다. 1년이나 빠른 날짜를 가져오는 것이었습니다.

 

원인은 패턴문자열 오류때문이었습니다.

 

"YYYYMMdd" vs "yyyyMMdd"

 

연도를 나타내는 yyyy를 소문자가 아닌 대문자로 사용할 경우 미묘한 오류가 발생합니다.

 

자칫 악용하면 연말에만 발생하는 버그를 만들수도 있겠네요.

 



nssm이라는 프로그램을 이용하여 윈도우 서비스에 등록하는 과정입니다.


참고했던 블로그( http://dante2k.tistory.com/archive/20140710) 입니다.


jar를 등록하는 방법인데, executable jar 가 아닌 main method class를 실행하기 위한 bat 파일을 만들고 그 배치파일을 nssm에 등록해서 수행했습니다.


윈도우 시작시 자동 실행되니 참 깔끔하네요.


설치방법


1. nssm 프로그램을 다운받습니다. zip 형태로 되어 있으며 압축을 해제하면 win32/64 두가지 형태로 존재합니다.

(별도로 설치하거나 하지 않아서 좋습니다. 임의의 디렉토리에 압축을 해제해도 좋지만 커맨드 창에서 쉽게 이동하기 위해서 가급적이면 짧은 path를 사용하는게 좋을듯 합니다. )

아래 첨부는 2014년 8월31일자 stable 버전입니다.


nssm-2.24.zip


2. 커맨드 창에서 다음과 같은 명령어로 실행합니다.


nssm install testService


3. 실행된 nssn 프로그램창에서 Application Path를 지정하는데, 여기서 미리 만들어 놓은 bat 파일을 선택합니다.


4. Windows Service 관리자에서 등록여부를 확인합니다.


참고로 windows용 tail 프로그램은 아래 baretail을 사용합니다.


baretail.exe







« PREV : 1 : ··· : 11 : 12 : 13 : 14 : 15 : 16 : 17 : ··· : 61 : NEXT »