2012년 3월 1일 목요일

Apache + Tomcat + ssl연동

* IBM HTTP Server 7.0 + (Tomcat4.1.40, Tomcat6.0) 연동

1. Apache Download

2. Tomcat Download

3. mod_jk.so Download (tomcat과 Apache를 연동시킬 때 필요한 파일 묶음)
http://mirror.apache-kr.org//tomcat/tomcat-connectors/jk/binaries/windows/ 


apache version에 맞춰서 해야한다.
tomcat-connectors-1.2.32-windows-i386-httpd-2.2.x.zip 

IHS7.0은 Apache 2.2.x version이라 2.0.x version을 사용했을 때 LoadModule을 할 수 없었다.




4. 받은 파일 압축 푼 후 HTTPServer/modules 밑에 mod_jk.so을 복사한다.


5. HTTPServer/conf/httpd.conf 편집
LoadModule jk_module modules/mod_jk.so
include conf/mod_jk.conf

내용추가

6. HTTPServer/conf에 mod_jk.conf 파일 추가
ajp13의 application 시작 root
   http://localhost:7777/jQueryTest/
ajp14의 application 시작 root
   http://localhost:8080/ttttttttt/

JkWorkersFile "C:/IBM/HTTPServer/conf/workers.properties"
JkLogFile "D:/eclipse/tomcat6.0/logs/mod_jk.log"
JkLogLevel error
JkAutoAlias "D:/eclipse/tomcat6.0/webapps"
JkMount /ttttttttt/* ajp14
JkUnmount /ttttttttt/*.php ajp14
JkMount /jQueryTest/* ajp13
JkUnmount /jQueryTest/*.php ajp13
<Directory "D:/eclipse/tomcat6.0/webapps">
 Options Indexes FollowSymLinks
 allow from all
</Directory>


7. HTTPServer/conf에 workers.properties 파일 추가
ajp13 = TOMCAT6.0
ajp14 = TOMCAT4.1


worker.ajp.13.port, worker.ajp.14.port는 해당 TOMCAT server.xml에서 맞춰줄 것
tomcat을 2개 돌릴 때 default 설정으로 돌리면 port가 충돌나면서 start가 되지 않는다.
이를 피하기 위해 server.xml에 들어가 기본 설정을 바꿔줘야 한다.
필자는 하나는 default, 하나는 시작 숫자를 7로 바꿔주었다.



workers.tomcat_home="D:/eclipse/tomcat6.0"
workers.java_home="C:/Program Files/Java/jdk1.6.0_30"
ps=/

worker.list=ajp12, ajp13, ajp14
worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.type=ajp12
worker.ajp12.lbfactor=1

worker.ajp13.port=7009
worker.ajp13.host=localhost
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1


worker.ajp14.port=8009
worker.ajp14.host=localhost
worker.ajp14.type=ajp13
worker.ajp14.lbfactor=1

worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=ajp12, ajp13, ajp14
worker.inprocess.type=jni
worker.inprocess.class_path=(workers.tomcathome)(ps)lib(ps)tomcat.jarworker.inprocess.cmdline=startworker.inprocess.stdout=(workers.tomcat_home)(ps)logs(ps)inprocess.stdout
worker.inprocess.stderr=(workers.tomcathome)(ps)logs$(ps)inprocess.stder


8. ssl 연동

SSL관련된 주석 제거 후 SSL 가능하나 https로 진입 후 어디로 가야할지 JkMount 이용해 지정


LoadModule ibm_ssl_module modules/mod_ibm_ssl.so
Listen 0.0.0.0:443
## IPv6 support:
#Listen [::]:443
<VirtualHost *:443>
JkMount /jQueryTest/* ajp13
JkUnmount /jQueryTest/*.php ajp13


SSLEnable
SSLProtocolDisable SSLv2
</VirtualHost>
KeyFile C:/IBM/HTTPServer/ssl/key.kdb
SSLDisable

2012년 2월 12일 일요일

[java] DataSource 사용하기

1. Tomcat context.xml 아래 추가하기

<Resource name="jdbc/yjtest"

          auth="Container" type="javax.sql.DataSource"
          driverClassName="oracle.jdbc.driver.OracleDriver"
          url="jdbc:oracle:thin:@localhost:1523:orcl"
          username="yj"
          password="yj" maxActive="100" maxIdle="30" maxWait="100"
          removeAbandoned="true" removeAbandonedTimeout="60" logAbandoned="true"/>


2. ConnectionManager.java


package connection;

import java.sql.Connection;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.sql.DataSource;

public class ConnectionManager {
public Connection getConnection() throws Exception {
Connection conn = null;
if (initialized == false) {
initialize();
initialized = true;
}
try {
conn=ds.getConnection();
} catch (Exception e) {
System.out.println("Get connection, process exception: "
+ e.getMessage());
e.printStackTrace(System.out);
}
return conn;
}

public void initialize() throws Exception {
try {
Context ctx = new InitialContext();
Context envContext = (Context) ctx.lookup("java:/comp/env");
ds = (DataSource) envContext.lookup("jdbc/yjtest");
} catch (Exception e) {
System.out.println("Naming service exception: " + e.getMessage());
e.printStackTrace(System.out);
}
}

public void releaseConnection(Connection c) throws Exception {
if (c != null)
c.close();
}

public void closeConnection(Connection c) throws Exception {
if (c != null)
c.close();
}

private DataSource ds;

private boolean initialized;
}

[JAVA] 문자열을 이용하여 함수 호출하기



import java.lang.reflect.*;

public class testtest {

/**
* @param args
* @throws NoSuchMethodException
* @throws SecurityException
* @throws InvocationTargetException
* @throws IllegalAccessException
* @throws IllegalArgumentException
*/

public static void main(String[] args) throws SecurityException, NoSuchMethodException, IllegalArgumentException, IllegalAccessException, InvocationTargetException {
// TODO Auto-generated method stub
String func_name="";
testtest ttt = new testtest();
for(int i=0; i<3; i++) {
func_name="ppp"+(i+1);
Method method = testtest.class.getDeclaredMethod(func_name);
System.out.println(method.invoke(ttt, new Object[]{}));
}
}

String ppp1(){
System.out.println("ppp1호출");
return "ppp1";
}
String ppp2() {
System.out.println("ppp2호출");
return "ppp2";
}
String ppp3() {
System.out.println("ppp3호출");
return "ppp3";
}
}



참으로 Exception이 많구나..;;

2012년 1월 24일 화요일

[javascript] window.open의 속성값들

window.open에서 사용하는 option값


위치
screenX / left(ie전용) : 왼쪽 좌표, screenY / top(ie전용) : 위쪽 좌표
크기
width : 너비, height : 높이
resizable(크기변경 허용 여부)
innerWidth, innerHeight, outerWd\idth, outerHeight(넷스케이프 전용?)
다른 창과의 관계
dependent(opener가 닫히면 함께 닫힘)
alwaysLowered(항상 깔림), alwaysRaised(항상 드러남)
z-lock(yes로 설정하면, 활성화되어도/포커스가 주어져도 다른 창 위로 떠오르지는 못하게 막는다)
기타 옵션들
hotkeys( no로 지정하면 menubar 없이는 (security 및 quit) 핫키를 제외한 어떤 핫키도 사용할 수 없게 된다 )
directories(디렉터리 버튼들)
location(로케이션 엔트리)
menubar(File, Edit, View, 기타의 메뉴바)
scrollbars(필요할 때 나타날 스크롤바)
status(아래쪽 상태바)
titlebar(위쪽 타이틀바)
toolbar(Back, Forward, 기타의 툴바)
IE4(이상)에서만 사용 가능한 옵션들
channelmode(채널바가 있는 창)
fullscreen(전체 화면 차지)
left(screenX), top(screenY)

[이클립스] 쓸만한 단축키 모음


이클립스 사용할 때 필요한 단축키 모음

1. Alt + left arrow  : 이전 편집페이지로 이동

2. Alt + right arrow : 이후 편집페이지로 이동

3. Control + O : Quick Outline

4. Control + / : 선택한 영역의 주석처리 적용 및 해제

5. Control + shift + arrow : 클래스내 함수단위로 이동

6. Control + shift + up, down arrow : 화면을 돌릴수 있다.

7. Alt + up, down arrow : 해당라인만을 이동한다. 마치 순간이동하는것 처럼 쌈박하다.

8. F2 : 컴파일 오류가 난 빨간줄을 선택후 F2를 누르면 에러의 원인을 알 수 있다.

9. Control + arrow : 화면스크롤짓 하기

10. Control + k : 찾고자 하는 문자열을 선택후 ctrl + k를 누르면 순서대로 찾아진다. 여기 shift키를 추가하면 반대로 찾아진다.

11. Control + F3 : 상세정보를 할때 에로하게 눌러주세용

12. Control + j : 입력하면서 찾아준다.

13. Control + shift + S : 열려진 창을 모두 저장합니다.

2012년 1월 18일 수요일

[Android] Emulator 한글 패치

1. HangulKeyboard.apk 파일을 download

2. C:\android-sdks\platform-tools (android-sdk를 설치한 곳\platform-tools)에서
    adb install hangulkeyboard.apk 명령어 실행


3. 메뉴 - Settings
[출처] 안드로이드 에뮬레이터 한글 설정및 한글키보드 설정 |작성자 필도령
























4.  Language & Keyboard 
























5. 한글 접촉식 키보드 활성화
























6. Select locale - 한국어


2012년 1월 16일 월요일

[자바스크립트] 테이블 제어하기(숨기기&보여주기)


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script language="javascript">
function ShowTable(wtable) {
eval(wtable).style.display="";
}
function HideTable(wtable) {
eval(wtable).style.display="none";
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-KR">
<title>Insert title here</title>
</head>
<body>
<input type="button" value="A Table Show" onclick="ShowTable('a_table');">
<input type="button" value="A Table Hide" onclick="HideTable('a_table');">
<input type="button" value="B Table Show" onclick="ShowTable('b_table');">
<input type="button" value="B Table Hide" onclick="HideTable('b_table');">
<form name=form>
<table id="a_table" style="display:none;">
<tr><td>aa</td></tr>
</table>
<table id="b_table" style="display:none;">
<tr><td>bb</td></tr>
</table>
</form>
</body>
</html>