카테고리: Java

log4j2 날짜별 파일로 저장하고 싶을때

log4j2에서 날짜별로 파일을 남기기 위해서는 RollingFile을 이용하면 된다. 즉 예전의 log4j의 DailyRollingFileAppender과 동일하게 동작하게 하려면 아래와 같이 xml환경설정을 하면된다. 이때 유의해야 할점은 append를 false로 지정하지 않으면 날짜별로도 로그가 남지만, test.log파일에도 모든 로그가 계속 추가되므로 사이즈가 거대하게 된다.

더보기

Apache Tomcat 포트 여러개 사용 (다중포트)

server.xml을 열어 아래와 같이 새로운 Calina2라는 service 태그 생성 주의할점은 이전 Calina에서 명기한 포트와 달라야 한다.

더보기

구글 음성인식(SpeechRecognizer) API를 이용하여 서비스 형태로 구현하기

구글의 음성인식 API를 서비스 형태로 구현하여, 항상 명령어를 내리면 실행할수 있는지 테스트하기로 하였다. 1. 서비스 구현 – 구글의 SpeechRecognizer API는 한번 음성을 인식한 후, 끝나버리기 때문에 계속 재시작을 해주는 식으로 구현해야 한다. – 따라서 다음과 같이 onResults에서 음성인식 결과를 출력하고 난후, 핸들러 메시지를 MSG_VOICE_RECO_END 상태로 보낸다. 그렇게되면 핸들러의 handleMessage() 에서는 1초후에 다시 SpeechRecognizer를 재시작한다. public […]

더보기

Controller 에서 뷰페이지 지정 방식 (redirect / forward)

forward redirect 주소 표기 사용자는 “a.do”를 요청했고, 컨트롤러에서는 return “forward:/b.do”라고 하여 “b.do”의 처리결과를 브라우져에 보이게 된다.하지만, 사용자의 브라우저에는 최종처리된 “b.do”가 나타나는 것이 아니라 애초 요청한 “a.do”가 나타나게 된다. 사용자는 “a.do“를 요청했고, 이를 처리한 컨트롤러가 return “redirect:/b.do”라고 하면웹서버는 redirect에 지정된 URL(b.do)을 클라이언트(브라우져)로 보낸다. URL(b.do)를 수신한 브라우져는 해당 URL(b.do)을 이용하여 별도의 서비스를 요청한다. 이때 b.do라는 서비스 요청을 […]

더보기

넥서스 설정

1. 개요 Tomcat7, JDK1.6, nexus 2.2 버전을 기준으로 함 2. 넥서스 설치 http://www.sonatype.org/nexus/archived 에서 넥서스 2.2 다운 로드 압축을 풀어 D:\Service\Nexus\nexus-2.2 폴더에 넣는다. 3. Tomcat 설정 server.xml에 대한 설정 Tomcat Connectior의 uriworkermap.properties에 대한 설정 #/=wlb #/*=wlb /*.jsp=wlb /*.do=wlb /*.json=wlb #—————————- # nexus 설정 #—————————- /index.html=wlb /service/*=wlb /content/*=wlb /static/*=wlb #—————————- # Optionally filter out all .jpeg […]

더보기

전자정부프레임워크 3.0에서 프로젝트 생성시 예제가 생성이 안되는 경우

아래는 신규프로젝트 준비중에 전자정부 3.0기반으로 해볼려고 하는데, 이클립스에서 예제가 생성안되는 것이 의아해서 테스트한 결과이다. 1. 테스트 환경  – Windows8.1 K 64Bit – JDK : jdk1.6.0_45 와 jdk1.8.0_05 2개가 설치되어 있는 상태   2. 실행환경 다운로드 및 설치 – http://www.egovframe.go.kr/EgovRunEnvReleaseNote.jsp?menu=3&submenu=1 에서 상단 "표준프레임워크 통합 다운로드" 버튼 클릭하여 설치 3. 테스트 프로젝트 생성하고 아래와 같이 Generate Example 체크후 […]

더보기

안드로이드 버튼의 이미지를 그레이로 만들기

final Drawable daWork = mBtnWork.getCompoundDrawables()[1]; // 1번째가 TOP 이미지, 이유는 위에서 android:drawableTop으로 하였기때문에.. if(daWork != null) mBtnWork.setCompoundDrawables(null, convertToGrayscale(daWork), null, null); protected Drawable convertToGrayscale(Drawable drawable) { ColorMatrix cmMatrix = new ColorMatrix(); cmMatrix.setSaturation(0); //0이면 grayscale drawable.setColorFilter(new ColorMatrixColorFilter(cmMatrix)); return drawable; }

더보기

AppVersion Update(앱 버전 수동 업데이트)

Google Play Store 와 app.moram**.co* 에 App을 새로 올릴 때 AndroidManifest.xml 에 있는 android:versionCode="??"  확인한다. 그 후 Google Play Store 의 배포 지연 시간을 약 하루라고 생각하고 다음날 해당 DB의 MOB_UPDATE_INFO 테이블의 APP_VERSION 이라는 이름을 가진 코드의 참조값을 versionCode 의 값으로 바꿔준다.   그 이유는 사용자에게 새로운 프로덕션이 출시 되었으니 새롭게 다운로드하라는 의미이다.

더보기

정렬되지 않은 APK 파일(ZipAlign)

\\android-sdk\tools 폴더에 있는 ZipAlign을 이용하여 APK파일을 정렬해준다.   CMD 창을 관리자 권한으로 열어주고 경로는 \\android-sdk\tools  SDK가 있는 폴더로 이동해준다. $>zipalign -f -v 4 ${input_name}.apk ${output_name}.apk 명령을 실행해주고 성공하면 Verification succesful 이라는 문구가 나온다 이후 ZipAlignedApps 폴더 안을 확인하면 ZipAlign이 완료된 APK파일을 얻을수 있다.

더보기

Android SDK Update 시 Eclipse Android S/W 대체 방법

Android SDK 에서 Tool 을 Update 한 뒤에 이클립스를 재시작시  Android S/W 23.0.0 이상의 버전 또는 그 이상의 버전을 설치요구와 업데이트 확인을 요하는 경고 문구가 나오는 경우   이클립스 Help > Install New Software.. 메뉴로 이동하여 우측 하단에 already Installed 를 클릭하여 이미 설치된 S/W를 확인한다.   -Android DDMS -Android Development Tools -Android Hierarchy Viewer -Android Native […]

더보기