검색결과 리스트
tomcat5.5에 해당되는 글 2건
- 2006.12.16 UBUNTU 에다가 APACHE2 + TOMCAT5.5.20 + JK2 설치하기 15
- 2006.12.16 TOMCAT5.5 + MYSQL5.0 + JNDI 설정하기 44
원래 jk2.properties 파일이 톰켓 conf 디렉토리에 있어야 하지만 톰켓 5.5 에서 jk2 가 deprecated 되었기때문에 없다. 개발자들의 흥미가 떨어져서 중단됬다고 한다..ㅡ.ㅡ;
그러나 걱정하지 말자 server.xml 파일에 기존의 jk 커넥터가 기본으로 설정되어 있으니 그냥 사용하면 된다. (똑같은 jk 이기때문에 호환 되는거 같다.)
그리고 아파치로 서비스 하게되면 8080 번 포트의 기본 커넥터가 필요없어지니 server.xml 파일에서 주석 걸어두는게 좋을 것이다.
이 문서는 apache2 와 tomcat5.5 가 설치되어있다고 가정한다.
1. UBUNTU 에 JK2 설치하기
$ sudo apt-get install libapache2-mod-jk2
2. jk2.conf, jk2.load 파일 apache2 conf 파일에서 Include 하기
- apache2 conf 파일을 열어보면 아래와같은 부분을 볼수있다.
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf
- /etc/apache2/mods-enabled 디렉토리에 load 나 conf 파일을 넣어준다면 자동 Include 된다는 소리다.
- /etc/apache2/mods-available 디렉토리에 있는 jk2.conf,jk2.load 파일을 mods-enabled 로 링크 해주자.
3. jk2.conf 파일을 열어보면 아래와같이 또 인클루드 하는데 해당 파일이 없을테니 만들어주자
JkSet config.file /etc/apache2/workers2.properties
4. /etc/apache2/workers2.properties 파일
# Define the communication channel
[status:]
[uri:/jkstatus/*]
group=status:
[shm:]disabled=1
[channel.socket:localhost:8009]
info=Ajp13 forwarding over socket
tomcatId=localhost:8009
# Web Applicaton
[uri:/jsp-examples/*]
info=Map the whole webapp
5. 톰켓 & apache2 재시작
6. http://localhost/jsp-examples/ 들어가봤을때 제대로 나오면 성공이다.
iptables (21) | 2006.12.22 |
---|---|
ubuntu linux root 계정 비밀번호 바꾸기 or 지정하기 (27) | 2006.12.20 |
젠투 IPTABLES 사용하기위한 커널 옵션설정법 (49) | 2006.12.18 |
젠투 에서 커널 컴파일하기 (45) | 2006.12.18 |
젠투 mysql 외부에서 접근가능하게 하기 (25) | 2006.12.18 |
톰켓 4.x 버젼까지는 됬는데 5.x 버젼으로 가면서 셋팅법이 약간 바꼇다.;
이거때문에 좀 애먹었다..ㅡ.ㅡ;
1. MYSQL 드라이버를 받아서 설치하기;
- 이거 잘못넣어놓으니까 자꾸 클래스를 못찾는 에러를 발생한다. 톰켓루트의 shared/lib 이나 애플리케이션루트의 WEB-INF/lib 디렉토리에 넣으면 컴파일은 되나 실행하면 클래스를 못찾는다는것을 명심하자.
- 가장 귀찮지만 좋은방법은 환경변수에 클래스패스를 걸어서 따로 모아두는거다.(귀찮다.)
- 두번째 방법은 톰켓루트 common/lib 에 넣어놓는거다. 이거는 클래스패스 안걸어도 톰켓이 알아서 찾아간다. (난 이걸로 쓰겠다.)
- 마지막으로 가장 무식한방법인 jre/lib/ext 에 넣는 방법이다. (이건 대략 비추)
2. server.xml 설정하기;
- 이게 문제다. 5.x 버젼으로 오면서 약간 바꼇다. 확인해보자.
- 아래것을 <Context> 태그 사이에 넣어주면 된다.
- 먼저 기존것은 다음과 같다.
<Resource auth="Container" name="jdbc/mysql" type="javax.sql.DataSource"/>
<ResourceParams name="jdbc/mysql">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:mysql://localhost:3306/cranix</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.mysql.jdbc.Driver</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>10</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>20</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>-1</value>
</parameter>
<parameter>
<name>minEvictableIdleTimeMillis</name>
<value>600000</value>
</parameter>
<parameter>
<name>username</name>
<value>ID</value>
</parameter>
<parameter>
<name>password</name>
<value>PASS</value>
</parameter>
</ResourceParams>
- 이것이 아래와같이 변경됬다.
<Resource
name="jdbc/mysql"
auth="Container"
type="javax.sql.DataSource"
username="[ID]"
password="[PASS]"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cranix"
/>
- 짧아져서 좋긴한데.. 몇시간동안 헤멨다 (역시 네이버형님은 모르는게 없다.!)
3. web.xml 설정하기
- 이건 변함없다.
<resource-ref>
<description>Use for valuation systems DataSource</description>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
4. 커넥션 확인하기!
- JNDI 를 써서 커넥션을 확인해보자.
- 먼저 아래와같이 JNDI 를 컨트롤하는 클래스를 하나만들자.
- JndiConnectionManager.java
package cranix.common.util;
import java.sql.*;
import javax.naming.*;
import javax.sql.DataSource;
import java.util.Hashtable;
public class JndiConnectionManager {
private static JndiConnectionManager jcm = null;
private Hashtable<String, DataSource> table = null;
private Context initContext = null;
private JndiConnectionManager() throws Exception {
table = new Hashtable<String, DataSource>();
initContext = (Context)new InitialContext().lookup("java:comp/env/");
}
private DataSource getDataSource(String name) throws Exception {
DataSource ds = table.get(name);
if (ds == null) {
ds = (DataSource)initContext.lookup(name);
table.put(name, ds);
}
return ds;
}
public static JndiConnectionManager getInstance() throws Exception {
if (jcm == null)
jcm = new JndiConnectionManager();
return jcm;
}
public Connection openConnection(String name) throws Exception {
DataSource ds = getDataSource(name);
Connection conn = ds.getConnection();
return conn;
}
public void closeConnection(Connection conn) throws Exception {
conn.close();
}
}
- 다음 위 클래스를 쓰는 jndiTest.jsp 파일을 만든다.
<%@page import="java.sql.Connection,cranix.common.util.JndiConnectionManager" %>
<%
JndiConnectionManager jcm = JndiConnectionManager.getInstance();
Connection conn = jcm.openConnection("jdbc/mysql");
jcm.closeConnection(conn);
%>
success!
- 이제 실행해보자!
- 예외가 발생하지 않는다면 성공!
jsp 직접실행 막기 (53) | 2007.12.12 |
---|---|
JSP 페이지를 열때마다 자동으로 캐시 지우기 (42) | 2007.03.18 |
스트러츠 2.0 (92) | 2006.12.16 |
RECENT COMMENT