Java Exception 전체 내용 문자열로 출력하기
■ Java Exception 처리시에 Exception 내용 String 객체로 받아 출력하기
Java Exception의 전체 내용을 로그에 찍고 싶어 catch 문에 e.toString() 값을 log4j에 던져 보았습니다.
확인 결과 해당 e.getMessage() 한 결과와 별반 다르지 않게 에러코드 메세지만 출력이 되고, 전체 에러 내용이 다 변환되지는 않더군요.
아무튼 찾아보니 방법이 있어 기록 합니다.
* 테스트 소스
1 2 3 4 5 6 7 8 9 10 11 | import java.*; class MyFirstProgram { public static void main(String[] args) { Exception e = new Exception("Exception String Print !!"); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); PrintStream pinrtStream = new PrintStream(outStream); e.printStackTrace(outStream); String printStackTraceStr = out.toString(); System.out.println("printStackTrace to String ==> " + printStackTraceStr); } } |
- e.printStackTrace()하면 System.out에 찍힘.
- 출력할 Exception 내용을 PrintStream을 생성해서 건네 주면 String 객체로 변환 가능.
Java jdk 1.5 다운로드 페이지
Java SE 6 버전이 필요해서 다운로드 사이트를 찾아서 포스팅을 했었습니다.
Java SE 5 버전도 Java SE 6 버전처럼 나중에 필요 할 지 모르기 때문에 다운로드 사이트를 포스팅 해두려 합니다.
해당 사이트로 접속을 하면 Java SE 5 버전 Build 별로 다운로드가 가능하네요.
Java jdk 1.6 다운로드 페이지
Java SE 6 버전이 필요해서 다운로드를 좀 받아 보려고 했습니다.
그래서 Oracle Official 사이트에서 Java SE 6 버전을 다운로드 하려고 했으나, 페이지로 가는 방법을 찾을 수가 없다군요.
그래서 검색을 통해 찾아낸 다운로드 페이지를 공유 할까 합니다.
해당 사이트로 접속을 하면 Java SE 6 버전 Build 별로 다운로드가 가능하네요.
※ 다운로드 정책이 바뀌었는지 다운로드시 Oracle 사의 Official 사이트 계정이 필요하네요.
getElementByName 과 getElementById 차이점
from 안에 선언된 객체들을 불러 올 경우 보통은 document.폼명.객체명 으로 해당 객체를
Javascript에서 참조할 것이다. 허나 오늘 얘기 하고자 하는 것은 간단하지만 놓치기 쉬운 부분에 대해
얘기 하고자 한다.
유지보수 중 Radio 버튼을 이용하여 처리를 해야 하는 경우가 발생 하였다. 조금 더 디테일 하게 얘기
하자면, 이용약관 밑에 동의여부를 만들어 달란다.
기존이라면 위의 예시 처럼 document.폼명.객체명 으로 참조 했었겠지만, 요세는 크로스 브라우징 및
웹접근성을 고려해야 하여, document.폼명.객체명 코드 보다는 document.getElementById 코드와
getElementByName 코드를 주로 사용하게 되었는데...
Radio 버튼을 두개이상 만들어서 Javascript로 제어를 하려 하니 getElementById로는 제어가 되지
않았다. 그래서 getElementByName도 사용 해봤지만 객체를 찾지 못하였다.
그래서 정리했다.
* getElementById : 객체의 고유 ID 값 참조 (싱글 객체로만 인식됨)
* getElementByName : 객체의 고유 Name 값 참조 (싱글 객체만 인식됨)
* getElementsByName : 객체의 고유 Name 값 참조 (두개 이상 동일 Name을 갖는 객체 배열로 인지)
Radio 버튼을 두개 이상 사용시 getElementsByName 로 인식이 가능하다.
html 객체 속성 중 disable="true" 와 readonly 차이
만 하루를 테스트해보다 찾은 결론은 textbox 객체에 disable="true" 옵션 때문이었다.
해당 옵션을 readonly 로 변경하니 서블릿으로 값이 정상적으로 넘어갔다.
* disable="true"
- 해당 객체의 value값을 사용 할 수 없도록 하는 옵션이며, 임의 변경이 불가능 하다.
또한, 기본적으로 Gray 처리를 한다. 고로, 서블릿에 해당 값을 submit 할 수 없다.
* readonly
- 해당 객체의 value값에 대해 임의 변경만 불가능 하다. 하지만, 해당 객체의 value값에 대해 읽기
권한은 가지고 있어 서블릿에 해당 값을 submit은 가능 하다.
우선 확인된 사항은 이렇게 이며, 해당 옵션의 차이점을 좀 더 찾아보고 업데이트를 해야 겠다.
PHP 뒤로가기시 만기된 페이지 보여질 경우 해결 책
PHP 유지보수를 하던 중 뒤로가기시 만기된 페이지가 떠서 해결 책을 찾았다.
php.ini 파일의 session.cache_limiter 값을 아래와 같이 변경 하면 된다.
변경전(default 값) : session.cache_limiter = nocache;
변경후 : session.cache_limiter = ;
단, 주의 사항은 phpInfo() 함수를 이용하여, 어떤 php.ini 파일을 php 환경파일로 사용하는지 확인 후
변경 해야 한다.
확인은 phpInfo()함수를 이용 php 파일을 만든 후 웹으로 띄어놓고 Loaded Configuration File
항목을 확인 하여 해당 파일을 수정 하면 된다.
자바스크립트 오류(document.XXX.XXXX은 null이거나 개체가 아닙니다) 오류 파악 방법
실제로 비즈니스 로직상의 문제는 없으나, 오류가 나는 경우가 있다.
필자도 어제 그걸로 고민을 하다가 결국 해결을 했다.
필자의 경우는 사이트(클라이언트) 쪽에 설치된 웹이 PHP+Smarty(Framework) 기반으로 개발이
되어 있었고, 유지보수를 하였다.
우선 자바스크립트 오류(document.XXX.XXXX은 null이거나 개체가 아닙니다) 오류가 날 경우
1. 참조 하려는 개체의 name이 정확한지 또는 중복인지 확인 한다.
--> 만약 틀리다면 개체 name을 맞춰 주면 되고, 중복이라면 중복된 개체 중 하나를 수정 해준다.
(아쉽게도 필자는 정상이였다. 고로 필자는 패스 했다.)
2. 참조 하는 name이 정상이라면 html 태그를 확인 하자!!
--> 웹 개발을 한 후에 유지보수를 맡은 개발자가 수시로 바뀌면서 소스는 더러워지고, 간혹 일정에
쫒겨, form 이나 table 안닫아서 문제가 생기더군요. 저도 결국 include 되는 파일에서 안닫힌
태그가 있어서 닫았 답니다.
Windows7 64bit 에서 Apache Tomcat6.0 모니터링 아이콘이 실행 되지 않을 때
10. 톰캣 모니터링 아이콘을 이용하여 서버가 Start와 Stop 명령이 제대로 동작하는지 확인합니다.