2013년 2월 23일 토요일

Spring3 declarative transaction (Spring3 선언적 트랜젝션)

참조 : http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/transaction.html#transaction-declarative



Spring3 404 error page 설정



WEB-INF/web.xml
--------------------------------------------------------------------------------
...

<servlet-mapping>
<servlet-name>appServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

<error-page>
<error-code>404</error-code>
<location>/error/404.do</location>
</error-page>
</web-app>
--------------------------------------------------------------------------------


ErrorController.java
--------------------------------------------------------------------------------
package x.x.x.controller;

import java.util.Locale;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ErrorController {
private Logger logger = Logger.getLogger(this.getClass());
@RequestMapping(value = "/error/404")
public String error404(Locale locale, HttpServletRequest request, HttpServletResponse response, HttpSession session) {
return "error/404";
}
}
--------------------------------------------------------------------------------




/WEB-INF/views/error/404.jsp

--------------------------------------------------------------------------------

<%@ page language="java" isErrorPage="true" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Error page</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
    <button onclick="history.back()">Back to Previous Page</button>
    <h1>Page Not Found.</h1><br />

    <p><b>Error code:</b> ${pageContext.errorData.statusCode}</p>
    <p><b>Request URI:</b> ${pageContext.request.scheme}://${header.host}${pageContext.errorData.requestURI}</p><br />
</body>
</html>

--------------------------------------------------------------------------------


2013년 2월 12일 화요일

WebSphere wct.sh 실행 시 java.lang.UnsatisfiedLinkError: Could not load SWT library 오류



1. 에러내용
WebSphere wct.sh 실행시 아래와 같은 오류 발생

java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
        /.ibm/WebSphere/AppServer/configurations/WCT8/org.eclipse.osgi/bundles/55/1/.cp/libswt-pi-gtk-3659.a (A file or directory in the path name does not exist.)
        swt-pi-gtk (Not found in java.library.path)
        /tmp/swtlib-64/libswt-pi-gtk-3659.a (A file or directory in the path name does not exist.)
        /tmp/swtlib-64/libswt-pi-gtk.a (A file or directory in the path name does not exist.)

2. 해결방안 : 아래 URL을 방문해서 아래 패키지를 모두 설치 후 재실행
http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html

rpm -ivh expat-2.0.1-1.aix5.2.ppc.rpm
rpm -ivh zlib-1.2.3-3.aix5.1.ppc.rpm
rpm -ivh freetype2-2.3.9-1.aix5.2.ppc.rpm
rpm -ivh fontconfig-2.4.2-1.aix5.2.ppc.rpm
rpm -ivh gettext-0.10.40-6.aix5.1.ppc.rpm
rpm -ivh glib2-2.12.4-2.aix5.2.ppc.rpm
rpm -ivh libjpeg-6b-6.aix5.1.ppc.rpm
rpm -ivh libpng-1.2.32-2.aix5.2.ppc.rpm
rpm -ivh libtiff-3.8.2-1.aix5.2.ppc.rpm
rpm -ivh xcursor-1.1.7-3.aix5.2.ppc.rpm
rpm -ivh xft-2.1.6-5.aix5.1.ppc.rpm
rpm -ivh xrender-0.9.1-3.aix5.2.ppc.rpm
rpm -ivh pixman-0.12.0-3.aix5.2.ppc.rpm
rpm -ivh cairo-1.8.8-1.aix5.2.ppc.rpm
rpm -ivh pango-1.14.5-4.aix5.2.ppc.rpm
rpm -ivh atk-1.12.3-2.aix5.2.ppc.rpm
rpm -ivh gtk2-2.10.6-4.aix5.2.ppc.rpm

2013년 2월 5일 화요일

AIX tips

** DNS 설정
vi /etc/resolv.conf

** AIX Toolbox for Linux Applications
http://www-03.ibm.com/systems/power/software/aix/linux/toolbox/alpha.html

** wget 설치

ftp ftp.software.ibm.com
Name> ftp
Password> 
ftp> cd aix/freeSoftware/aixtoolbox/RPMS/ppc/wget
ftp> bin
ftp> hash
ftp> get wget-1.9-2.aix5.1.ppc.rpm
ftp> quit
# rpm -hUv wget-1.9-2.aix5.1.ppc.rpm


** bash 설치
# wget ftp://ftp.software.ibm.com/aix/freeSoftware/aixtoolbox/RPMS/ppc/bash/bash-3.2-1.aix5.2.ppc.rpm
# rpm -hUv bash-3.2-1.aix5.2.ppc.rpm

** bash prompt
\t   HH:MM:SS 형식으로 나타나는 현재 시간
\d   "Weekday Month Date" 형식으로 나타나는 날짜 (eg, "Tue May 26")
\n   개행 문자(newline)
\s   쉘의 이름
\w   현재 작업 디렉토리
\W   현재 작업 디렉토리의 베이스 이름
\u   현재 사용자의 사용자 이름
\h   호스트 이름
\#   이 명령의 명령 번호
\!   이 명령의 히스토리 번호
\$   유효한 UID가 0이면 #, 아니면 $

export PS1="\u@\w# "


** 파일명 찾기 
  find . -name *.ear -type f

** 디렉토리 찾기 
   find . -name MedicineCell01 -type d

** 파일 보내기(mput), 가져오기(mget)
mget *  :  디렉토리를 제외한 나머지파일을 모두 가져온다.
mget -R BACKUP  : BACKUP이란 폴더 안에 존재하는 모든내용을 가져온다.
mget -R * : 역시 하위폴더까지 모두 가져온다.
mget *.html : 하위의 모든.html을 가지고 올경우
get -R *.html : 하위 디렉토리 하위의 것까지 가지고 올경우
파일 하나씩 'y'를 눌러야 하는 것이 번거롭다면 아래처럼 prompt 입력 후 명령을 내린다.
ftp> prompt
Interactive mode off.
ftp> mget * 


** tar exclude


ex.txt
--------------------------------------------------------------------------------
./medicine.war/file_dir
--------------------------------------------------------------------------------

tar -X ex.txt -cvf medicine.war.tar ./medicine.war


** WebSphere resource ref 추가


/WebSphere/AppServer/profiles/AppSrv01/config/cells/HostnameCell01/applications/earname.ear/deployments/earname/earname.war/WEB-INF/

web.xml
ibm-web-bnd.xmi

수정 ear 파일 재시작


/was80/WebSphere/AppServer/profiles/AppSrv01/config/cells/devoracle01Cell02/applications/medicineEAR.ear/deployments/medicineEAR/medicine.war/WEB-INF/

real /was80/WebSphere/AppServer/profiles/AppSrv01/config/cells/MedicineCell01/applications/medicineEAR.ear/deployments/medicineEAR/medicine.war/WEB-INF/



** 한글설정
애플리케이션 서버 > server1 > 프로세스 정의 > JVM(Java Virtual Machine) > 사용자 정의 특성 > client.encoding.override
KSC5601
애플리케이션 서버 > server1 > 프로세스 정의 > JVM(Java Virtual Machine) > 사용자 정의 특성 > file.encoding
KSC5601



** 첨부파일 경로
/user/homep/acpt_file/



** txstart.sh txstatus.sh 파일 상단에 아래내용 추가 필요

# 2013-02-06
export PATH=/usr/java5_64/bin:$PATH
export JAVA_HOME=/usr/java5_64












2013년 1월 31일 목요일

Using AIX tar exclude option


create "ex.txt" file
--------------------------------------------------------------------------------
./medicine.war/attachmemt
--------------------------------------------------------------------------------

tar -X ex.txt -cvf medicine.war.tar ./medicine.war

2012년 11월 23일 금요일

Install JEUS server runtime on Eclipse



http://technet.tmax.co.kr/kr/pds/bin/jeus/readBoardForm.do?bbsCode=bin_jeus&fc=pds&sc=pds_bin&tc=pds_bin_jeus&currentPage=1&seqNo=38947&categoryId=&productCode=&range=10&searchType=ALL&searchText=

JEUS의 Boot, Down, Deploy 기능을 Eclipse를 사용자들을 위해서 제공하는 Plugin입니다.

* Requirements for "JEUS + Eclipse(galileo) Bridge"
JEUS Version
아래 명시된 JEUS 를 지원합니다.
• JEUS 5.0 : fix#27
• JEUS 6.0 : fix#6
plug -in
Bridge를 사용하기 위해서는 'eclipse IDE for javaee developers' 패키지나 webtools 플러그인이 설치된 이클립스가 필요합니다.
• eclipse-jee-galileo-win32.zip [다운로드]

* 설치방법
1. Eclipse에서 Help >  Install New Software 메뉴를 선택합니다.
2. Add 버튼을 선택 후 Archive 버튼을 선택합니다.
3. New Archive Site 메뉴를 선택 후 다운로드 받은 Eclipse(galileo) Bridge for JEUS.zip 파일을 선택합니다.
4. Finish 버튼을 선택하여 설치합니다.

* 메뉴얼
Eclipse에서 Help > Help Conents 메뉴에 JEUS 서버 설정 가이드를 참고하시면 됩니다.

2012년 11월 19일 월요일

AIX 에서 특정 port 를 사용하는 Process ID 찾기


# netstat -Aan | grep 8080
f1000500003e9bb8 tcp4       0      0  *.10431               *.*                   LISTEN

# rmsock f1000500003e9bb8 tcpcb
The socket 0xf1000500003e9808 is being held by proccess 4849780 (wsm).