===
https://dodomain93.tistory.com/156
cubrid DB 설치
cubrid는 어디 DB인가 했는데 opensource DB에 국산제품이라 하더라.일단 한 번 설치나 해보고 JBoss에 연결해보자.connection test 목적을 위해서 구성중이니, 여기에 적힌게 절대적인건 아니다.. 1. cubrid 설
dodomain93.tistory.com
===
1. ${JBOSS_HOME}/modules/system/layers/base 경로에
com/cubrid/main 경로를 생성
[app@test11 base] mkdir -p /sw/jboss-eap-7.4/modules/system/layers/base/com/cubrid/main
2. ${JBOSS_HOME}/modules/system/layers/base/com/cubrid/main 경로에 module.xml 작성
<?xml version='1.0' encoding='UTF-8'?>
<module xmlns="urn:jboss:module:1.1" name="com.cubrid">
<resources>
<resource-root path="JDBC-11.3-latest-cubrid.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
3. /sw/jboss-eap-7.4/modules/system/layers/base/com/cubrid/main 경로에 cubrid JDBC Driver 위치

4. /sw/domains/${INSTANCE}/bin/jboss-cli.sh 실행 하여 JDBC Driver 설정
[app@test11 bin]$ ./jboss-cli.sh
================================================
JBOSS_HOME=/sw/jboss-eap-7.4
DOMAIN_BASE=/sw/domains
SERVER_NAME=node11
CONFIG_FILE=standalone-ha.xml
BIND_ADDR=192.168.56.101
PORT_OFFSET=0
CONTROLLER=192.168.56.101:9991
jboss.node.name=node11
================================================
[standalone@192.168.56.101:9990 /]
[ex. /subsystem=datasources/jdbc-driver=cubridDS:add(driver-name=${이름은 알아보기 쉽게},driver-module-name=${module.xml에 적힌 name= 을 적을 것},driver-class-name=${JDBC Driver 벤더 별 class 확인})]
[standalone@192.168.56.101:9990 /] /subsystem=datasources/jdbc-driver=cubridDS:add(driver-name=cubridDS,driver-module-name=com.cubrid,driver-class-name=cubrid.jdbc.driver.CUBRIDDriver)
5. /sw/domains/${INSTANCE}/bin/jboss-cli.sh 실행 하여 data source 설정
data-source add --name=${이름 아무거나} --jndi-name=java:/${JNDI명} --driver-name=${방금생성한 Driver} --connection-url=jdbc:cubrid:${IP}:33000:${cubrid DB이름}:::?charset=utf-8 --user-name=${DB ID} --password=${DB 암호} --background-validation=true --validate-on-match=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.novendor.NullValidConnectionChecker --check-valid-connection-sql="select 1" --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter
[standalone@192.168.56.101:9990 /] data-source add --name=cubridDS --jndi-name=java:/cubridDS --driver-name=cubridDS --connection-url=jdbc:cubrid:192.168.56.110:33000:cub_testdb:::?charset=utf-8 --user-name=dba --password=1234 --background-validation=true --validate-on-match=false --valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.novendor.NullValidConnectionChecker --check-valid-connection-sql="select 1" --exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.novendor.NullExceptionSorter
※ 대부분의 블로그에서는 validate-on-match = true, background-validation = false로 해두는 거 같다.
cubrid는 JBoss 상에서 공식적으로 tested 된 DB는 아니기에 정답은 없는 거 같다.
6. 테스트 커넥션 보내보기
[standalone@192.168.56.101:9990 /] data-source test-connection-in-pool --name=cubridDS
true
7. 테스트 페이지 호출

[app@test11 cubrid]$ cat test.jsp
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<%@ page import="java.sql.*" %>
<%@ page import="javax.naming.Context" %>
<%@ page import="javax.naming.InitialContext" %>
<%@ page import="javax.sql.DataSource" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>CUBRID JDBC Test</title>
<style>
body { font-family: Arial, sans-serif; font-size: 14px; }
table { border-collapse: collapse; margin-top: 15px; width: 100%; }
th, td { border: 1px solid #999; padding: 8px; text-align: left; }
th { background: #f0f0f0; }
.ok { color: blue; font-weight: bold; }
.fail { color: red; font-weight: bold; }
pre { background: #f7f7f7; padding: 10px; border: 1px solid #ddd; }
</style>
</head>
<body>
<h2>CUBRID + JBoss JDBC 연동 테스트</h2>
<%
Connection conn = null;
PreparedStatement pstmt = null;
Statement stmt = null;
ResultSet rs = null;
try {
Context initCtx = new InitialContext();
DataSource ds = (DataSource) initCtx.lookup("java:/cubridDS");
conn = ds.getConnection();
out.println("<p class='ok'>[OK] DataSource lookup 및 DB 연결 성공</p>");
out.println("<p>Connection Class : " + conn.getClass().getName() + "</p>");
// 현재 시간 조회
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT SYS_DATETIME FROM db_root");
if (rs.next()) {
out.println("<p>DB 현재시간 : " + rs.getString(1) + "</p>");
}
rs.close();
stmt.close();
// 테스트 테이블 조회
String sql = "SELECT ID, TITLE, CONTENT, REG_DATE " +
"FROM TB_JBOSS_CUBRID_TEST " +
"ORDER BY ID DESC";
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
out.println("<h3>TB_JBOSS_CUBRID_TEST 조회 결과</h3>");
out.println("<table>");
out.println("<tr><th>ID</th><th>TITLE</th><th>CONTENT</th><th>REG_DATE</th></tr>");
while (rs.next()) {
out.println("<tr>");
out.println("<td>" + rs.getInt("ID") + "</td>");
out.println("<td>" + rs.getString("TITLE") + "</td>");
out.println("<td>" + rs.getString("CONTENT") + "</td>");
out.println("<td>" + rs.getString("REG_DATE") + "</td>");
out.println("</tr>");
}
out.println("</table>");
} catch (Exception e) {
out.println("<p class='fail'>[FAIL] 오류 발생</p>");
out.println("<pre>");
e.printStackTrace(new java.io.PrintWriter(out));
out.println("</pre>");
} finally {
try { if (rs != null) rs.close(); } catch (Exception ignore) {}
try { if (pstmt != null) pstmt.close(); } catch (Exception ignore) {}
try { if (stmt != null) stmt.close(); } catch (Exception ignore) {}
try { if (conn != null) conn.close(); } catch (Exception ignore) {}
}
%>
</body>
</html
'WAS > JBoss&WildFly' 카테고리의 다른 글
| [jboss 8.1] patch (0) | 2026.04.09 |
|---|---|
| JBoss 배포 cli command (0) | 2026.04.09 |
| jboss-deployment-structure.xml <exclusions> 사용 해보기 (1) | 2026.03.24 |
| log4j 설정 관련 추가 정리 (0) | 2026.03.24 |
| http method 제한 (0) | 2026.03.16 |