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