[JBoss] JNDI 설정
in Preference on Preference, Jboss, Jndi
개요
JBOSS를 사용했던 프로젝트의 JNDI 설정 내용을 간략히 정리해본다.
프로젝트 Deploy 경로 “/WebApp/deploy/프로젝트명.war” 기준으로 설정.
standalone.xml
- standalone.xml 파일에서 DB설정 추가
- 경로 : /JBOSS/domains/프로젝트명/configuration/standalone.xml
- <datasources> 에 하단 내용 추가
<datasource jndi-name="java:/jdbc/tb" pool-name="tb" enabled="true" use-java-context="true"> <connection-url>jdbc:oracle:thin:@192.168.0.119:1521:XE</connection-url> <driver>oracle</driver> <pool> <min-pool-size>10</min-pool-size> <max-pool-size>15</max-pool-size> <prefill>true</prefill> </pool> <security> <user-name>tb</user-name> <password>1234</password> </security> <validation> <check-valid-connection-sql>select 1 from dual</check-valid-connection-sql> <validate-on-match>false</validate-on-match> <background-validation>true</background-validation> <background-validation-millis>10000</background-validation-millis> <use-fast-fail>false</use-fast-fail> </validation> <statement> <prepared-statement-cache-size>100</prepared-statement-cache-size> <share-prepared-statements>true</share-prepared-statements> </statement> </datasource>- Oracle 기준으로 jndi-name, pool-name, connection-url, user-name, password 등 DB 관련 설정을 입력한다.
- <Drivers> 에 하단 내용 추가
<driver name="oracle" module="com.oracle"> <driver-class>oracle.jdbc.OracleDriver</driver-class> </driver>- 연결하고 싶은 DB의 드라이버 정보를 입력한다.
module.xml
- 오라클 드라이버 파일 추가를 해줘야 한다.
- 경로 : /JBOSS/jboss-eap-7.4/modules/system/layers/base/com/ 위 경로를 보면 다양한 DB연결 api들이 있다. 해당 경로에 oracle 폴더가 있는지 확인하고, 없다면 /oracle/main/ 추가.
- ojdbc 등 DB접속에 필요한 파일을 위 폴더에 복사해 넣고, 동일 폴더에 module.xml 파일을 생성한다.
- module.xml 파일에 하단 내용 추가.
<?xml version="1.0" encoding="UTF-8"?> <module xmlns="urn:jboss:module:1.1" name="com.oracle"> <resources> <resource-root path="ojdbc8-19.8.0.0.jar" /> <resource-root path="orai18n-19.3.0.0.jar" /> </resources> <dependencies> <module name="javax.api"/> <module name="javax.transaction.api"/> </dependencies> </module>- standalone.xml 파일 내 Drivers 테그 내에 입력한 driver 의 module 속성에 입력한 값을 module 테그의 name과 맞춰준다.
- resource-root 부분을 추가한 파일에 맞게 수정한다.
web.xml
경로 : 프로젝트 소스 내 /WEB-INF/web.xml 파일 수정
아래 내용 추가
<resource-ref> <description>Datasource Contents Server</description> <res-ref-name>jdbc/tb</res-ref-name> <!-- JNDI 명 --> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref>- standalone.xml 파일 내 datasource 테그의 jndi-name=”java:/jdbc/tb” 의 “java:/” 이후 부분을 <res-ref-name> 테그값과 맞춰준다.
jboss-web.xml
- 경로 : 프로젝트 소스 내 /WEB-INF/jboss-web.xml
- jboss-web.xml 하단과 같이 수정(없으면 생성)한다.
<!DOCTYPE jboss-web PUBLIC
"-//JBoss//DTD Web Application 5.0//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_5_0.dtd">
<jboss-web>
<resource-ref>
<res-ref-name>jdbc/jdbc/tb</res-ref-name>
<jndi-name>java:/jdbc/tb</jndi-name> <!-- standalone.xml 파일의 JNDI-NAME -->
</resource-ref>
</jboss-web>
- res-ref-name 테그 값을 jdbc/{web.xml 내 res-ref-name} 으로 맞춰준다.
간단하게 정리만 해 두었다. 정확한 정보가 아닐 수 있지만 나중에 참고하긴 좋을 것 같다.
