10월, 2013의 게시물 표시

Charset 변환 ( EUC-KR, UTF-8, MS949, CP933 )

1. 개요 국제화를 고려한 사이트이여야 하나 국내는 반드시 EUC-KR을 사용해야 함에 따라 아래 문제를 해결해야 함 1) EUC-KR을 UTF-8, MS949, CP933 으로 변환해야 한다.  2) 변환후 글자는 깨질수 있으나 byte length는 변하지 않아야 한다.  2. 변환 유틸 import java.io.ByteArrayOutputStream; import java.io.IOException; public class EncodingTest3 { static String convert(String str, String encoding) throws IOException { ByteArrayOutputStream requestOutputStream = new ByteArrayOutputStream(); requestOutputStream.write(str.getBytes(encoding)); return requestOutputStream.toString(encoding); } static String testEncoding(String str, String encoding) throws IOException { String result = convert(str, encoding); System.out.println(result + "=>encoding=" + encoding + ",length=(" + result.getBytes(encoding).length + ")"); return result; } public static void main(String args[]) throws Exception { System.out.println("==== file.encoding===" + System.getProperty("file.encoding")); String

JBoss WAS DataSource(jndi) 설정

JBoss WAS DataSource 설정 ~/conf/login-config.xml ~/deploy/oracle-ds.xml 두군데서 설정. login-config.xml 의 패스워드가 암호화 # java -cp client/jboss-logging-spi.jar:lib/jbosssx.jar org.jboss.resource.security.SecureIdentityLoginModule tiger Encoded password: -170dd0fbd8c13748 (참고URL http://cafe.naver.com/opensourcesw/11  )

Open Source로 구성된 Deploy Management System

이미지
해결과제   오픈 후 운영시점에 다수의 개발자가 유지보수를 한다.         (  모든소스를 Build & deploy(통배포) 할수 없게 된다. 배포 되면 않되는 소스를 commit           하지 않았다는 보장을 받을 수 없기에..)     상용 배포관리 시스템(clear case, harvest..)을 도입할 만한 예산이 없다. [그림 - deploy process] 배포절차 1. 이슈등록 설치된 Issue Management System인 jTrac 이나 redmine의 url로 접속하여 직접 이슈를 등록한다.  등록된 이슈는 Uniq한 이슈번호(Issue#) 가 생성된다. 이슈번호는 최종 배포시까지 적용될 소스들의 key word가 된다.   2. commit 개발자는 소스를 변경하고 svn에 commit 한다.  이때 commit comment에 이슈번호가 반드시 포함되도록, 입력한 이슈번호가 이슈관리 시스템에 등록된 번호인지 확인하는  설정이 있어야 한다. (이는  svn서버의 hook 디렉토리의 pre-commit 스크립트를 작성하면 가능하다)   또한, eclipse에는 mylyn plugin이 설치되어 있어야 한다. mylyn plugin은 자신에게 할당된 이슈리스트를 조회하고 적용할 이슈를 선택 할수 있게해준다.  commit시에 comment에 현재 선택한 이슈에 대한 이슈번호를 자동으로 추가해준다 현재 redmine은 plugin이 있으나 jTrac은 제작중이라 함. (기능은 redmine이 월등하게 앞서지만 jTrac보다 설치가 복잡하고 ruby on rail 이라는 생소한 환경에 익숙해야 한다. ) 3. 개발배포 이슈관리시스템의 리스트에서 개발배포를 실행(jTrac- remote jenkins api를 이용, redmine - jenkins_api_client를 이용)한다. 이부분은 이슈관리시스템customizing이 필요함 

Spring applicationContext hierarchy

[참고사이트] http://forum.spring.io/forum/spring-projects/container/124291-applicationcontext-hierarchy http://stackoverflow.com/questions/5132604/why-use-spring-applicationcontext-hierarchies Spring의 applicationContext는 다음과 같은 계층구조를 갖는다. ApplicationContext   :           Bean(ContextLoaderListerer-공유되는 bean)                                                                  ↗             ↖ WebApplicationContext:       dispatcherServlet-1       dispatchServlet-2 WebApplicationContext에서 ApplicationContext는 접근가능 그 반대는 불가능 ApplicationContext에서 WebApplicatonContext를 접근할려면 ServletContext에서 가져와야 한다. -> WebApplicationContext에는 자신의 context에 ApplicationContext를 parent로 등록하고 이를 ServletContext에 저장하기 때문. Why ? - 여러개의 dispatcherServlet을 구성하였을때 서로간에 독립성 유지 - 실제적인 모습은 하나의 war에 다수의 contextPath가 존재하도록 구성하고자 할때