keytool.exe -genkey -alias juheon -keyalg RSA -keypass 1234qwer -storepass 1234qwer -keystore juheon.jks keytool.exe -export -alias juheon -storepass 1234qwer -file juheon.cer -keystore juheon.jks keytool.exe -importkeystore -srckeystore juheon.jks -destkeystore juheon.key.p12 -deststoretype PKCS12 D:\Java\32bit\jdk1.5.0_22\jre\lib\security\cacert D:\Java\32bit\jdk1.5.0_22\bin\keytool.exe -import -alias tsasample -keystore D:\Java\32bit\jdk1.5.0_22\jre\lib\security\cacert -file D:\workspace\Servers\tsa-server-web-config\tomcat.cer keytool -import -alias somansa -keystore C:\Program Files\Java\jdk1.8.0_102\jre\lib\security\cacert -file c:\somansa.cer #인증서 생성 keytool -genkey -alias keyAlias -keyalg RSA -keypass changeit -storepass changeit –validity 9999 -keystore keystore.jks keytool -export -alias keyAlias -storepass changeit -file server.cer -keystore keystore.jks keytool -import -v -trustcacerts -alias keyAlias -file server.cer ...
JNDI를 이용하여 Database 연동을 해본다.
1. Oracle XE 설치
Oracel 11g XE를 다운받아 설치. Download URL 사용자 까지 생성.
2. Resource 등록
%CATALINA_HOME%\conf\server.xml 파일에 DB Resource를 GlobalNamingResources에 등록. 그래야 다른 context에서 참조해서 사용할 수 있다.
등록한 Global Resource를 사용할 context에서 Link 추가. 이번에는 context 설정을 server.xml 파일에 직접 추가한다.
위 설정까지 하고 나면 sample이라는 context에서는 "db"라는 JNDI 이름으로 DataSource를 사용 할 수 있다.
3. JNDI 사용
jsp 파일을 만들어서 JNDI를 사용하는 코드를 추가한다. Tomcat은 JNDI를 가져올때 Resource 명 앞에 "java:comp/env"를 붙여야 한다. 이는 WAS 밴더 별로 다르니 확인해야 한다.
4. DriverManager 사용
1. Oracle XE 설치
Oracel 11g XE를 다운받아 설치. Download URL 사용자 까지 생성.
2. Resource 등록
%CATALINA_HOME%\conf\server.xml 파일에 DB Resource를 GlobalNamingResources에 등록. 그래야 다른 context에서 참조해서 사용할 수 있다.
<GlobalNamingResources> <!-- Editable user database that can also be used by UserDatabaseRealm to authenticate users --> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> <Resource name="portal.ds" auth="Container" type="javax.sql.DataSource" username="tomato" password="tomato01" driverClassName="oracle.jdbc.OracleDriver" url="jdbc:oracle:thin:@localhost:1521:xe" maxActive="8" maxIdle="4"/> </GlobalNamingResources>
등록한 Global Resource를 사용할 context에서 Link 추가. 이번에는 context 설정을 server.xml 파일에 직접 추가한다.
<Host name="localhost" appBase="webapps" ... >
...
<Context docBase="sample" path="/sample" reloadable="true">
<ResourceLink global="portal.ds" name="db" type="javax.sql.DataSource" />
</Context>
</Host>
위 설정까지 하고 나면 sample이라는 context에서는 "db"라는 JNDI 이름으로 DataSource를 사용 할 수 있다.
3. JNDI 사용
jsp 파일을 만들어서 JNDI를 사용하는 코드를 추가한다. Tomcat은 JNDI를 가져올때 Resource 명 앞에 "java:comp/env"를 붙여야 한다. 이는 WAS 밴더 별로 다르니 확인해야 한다.
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*, javax.naming.*, javax.sql.*" pageEncoding="UTF-8"%> <% Context initCtx = new InitialContext(); //datasource name DataSource ds = (DataSource) initCtx.lookup("java:comp/env/db"); Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = ds.getConnection(); pstmt = conn.prepareStatement("select * from user_master"); rs = pstmt.executeQuery(); ResultSetMetaData metadata = rs.getMetaData(); int colcnt = metadata.getColumnCount(); for (int i = 1; i < colcnt + 1; i++) { out.print(metadata.getColumnName(i) + ","); } out.print("<br>"); while (rs.next()) { for (int i = 1; i < colcnt + 1; i++) { out.print(rs.getObject(metadata.getColumnName(i)) + ","); } out.print("<br>"); } } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (SQLException e1) { e1.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e1) { e1.printStackTrace(); } } if (rs != null) { try { rs.close(); } catch (SQLException e1) { e1.printStackTrace(); } } } %>
4. DriverManager 사용
<%@ page language="java" contentType="text/html; charset=UTF-8" import="java.sql.*, javax.sql.*" pageEncoding="UTF-8"%> <% Class.forName("oracle.jdbc.OracleDriver"); String id = "tomato"; String password = "tomato01"; String url = "jdbc:oracle:thin:@localhost:1521:xe"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection(url, id, password); pstmt = conn.prepareStatement("select * from user_master"); rs = pstmt.executeQuery(); ResultSetMetaData metadata = rs.getMetaData(); int colcnt = metadata.getColumnCount(); for (int i = 1; i < colcnt + 1; i++) { out.print(metadata.getColumnName(i) + ","); } out.print("<br>"); while (rs.next()) { for (int i = 1; i < colcnt + 1; i++) { out.print(rs.getObject(metadata.getColumnName(i)) + ","); } out.print("<br>"); } } catch (Exception e) { e.printStackTrace(); } finally { if (conn != null) { try { conn.close(); } catch (SQLException e1) { e1.printStackTrace(); } } if (pstmt != null) { try { pstmt.close(); } catch (SQLException e1) { e1.printStackTrace(); } } if (rs != null) { try { rs.close(); } catch (SQLException e1) { e1.printStackTrace(); } } } %>
댓글
댓글 쓰기