개요
Jboss eap 7.4 를 사용하면서 설정했던 내용에 대해 기록합니다.
- Application deploy
- JNDI
jboss eap 7.4 Application deploy 방법
관리콘솔 보다는 코드로 수정하는 방법이 편합니다. 코드로 적용하는 방법에 대해 설명합니다.
%JBOSS_HOME%\standalone\configuration\standalone.xml
해당 standalone.xml 파일의 가장 아랫부분에 추가할 Application 을 설정 합니다.
<socket-binding-group name="standard-sockets" default-interface="public" port-offset="${jboss.socket.binding.port-offset:0}">
<socket-binding name="ajp" port="${jboss.ajp.port:8009}"/>
<socket-binding name="http" port="${jboss.http.port:8080}"/>
<socket-binding name="https" port="${jboss.https.port:8443}"/>
<socket-binding name="management-http" interface="management" port="${jboss.management.http.port:9990}"/>
<socket-binding name="management-https" interface="management" port="${jboss.management.https.port:9993}"/>
<socket-binding name="txn-recovery-environment" port="4712"/>
<socket-binding name="txn-status-manager" port="4713"/>
<outbound-socket-binding name="mail-smtp">
<remote-destination host="${jboss.mail.server.host:localhost}" port="${jboss.mail.server.port:25}"/>
</outbound-socket-binding>
</socket-binding-group>
<!-- 여기 코드 수정 -->
<deployments>
<deployment name="test.war" runtime-name="test.war">
<fs-exploded path="D:\RunTimeServer\jboss-eap-7.4\standalone\deployments\test.war"/>
</deployment>
</deployments>
application 이름뒤에 .war 문자를 추가하면 됩니다.
그뒤 path 에 application 이 있는 폴더를 지정해주시면 됩니다. 아래와 같은 폴더 구조로 되겠죠!
해당 설정 후 jboss 기동하면 정상적으로 deploy 됨을 확인 할 수 있습니다.
추가로, context root 를 변경하고 싶은 경우 (예 : http://localhost:8080/test -> http://localhost:8080/console )
WEB-INF 폴더에 아래 내용의 파일을 추가해주시면 됩니다.
WEB-INF\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>
<context-root>console</context-root>
</jboss-web>
jboss eap 7.4 JNDI 설정
JNDI 란, 연결하고 싶은 database의 DB pool을 WAS(tomcat, jboss 등..)에서 미리 Naming 설정하여 Application 에서는 해당 Naming 을 통해 DB 접근하도록 하는 java api 다.
사용하는 용도로는 아래와 같다.
- DB의 서버/계정 정보 보안 (Application 에게는 Naming 정보만 노출되므로 db 정보가 노출되지 않는다.)
- DB 설정 정보를 파악하기 쉬움
- DB 커넥션 풀 등의 설정을 효율적으로 사용 가능
본론으로 JNDI 설정 방법을 알아봅시다.
%JBOSS_HOME%\standalone\configuration\standalone.xml
<subsystem xmlns="urn:jboss:domain:datasources:6.0">
<datasources>
<datasource jndi-name="java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-java-context="true" statistics-enabled="${wildfly.datasources.statistics-enabled:${wildfly.statistics-enabled:false}}">
<connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
<driver>h2</driver>
<security>
<user-name>sa</user-name>
<password>sa</password>
</security>
</datasource>
<!-- Oracle JNDI datasource START -->
<datasource jndi-name="java:jboss/datasources/OracleDS" pool-name="OracleDS" enabled="true">
<connection-url>jdbc:oracle:thin:@localhost:1521:orcl1</connection-url>
<driver>oracle</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>5</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>c##test</user-name>
<password>test</password>
</security>
</datasource>
<!-- Oracle JNDI datasource END -->
<drivers>
<driver name="h2" module="com.h2database.h2">
<xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
</driver>
<!-- Oracle JNDI driver START -->
<driver name="oracle" module="com.oracle">
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
</driver>
<!-- Oracle JNDI driver END -->
</drivers>
</datasources>
</subsystem>
주석된 "Oracle JNDI" 내용을 추가하시면 됩니다.
이후 oracle 연결을 위한 라이브러리를 추가해주도록 합시다.
위치 : %JBOSS_HOME%\modules\system\layers\base\com\oracle\main
(해당 경로가 없을 경우 생성해줘야 합니다. 일반적으로는 base\com 까지는 있으나 그 뒤 폴더는 만들어줘야함.)
해당 폴더에 아래 내용으로 module.xml 파일을 생성합시다.
%JBOSS_HOME%\modules\system\layers\base\com\oracle\main\module.xml
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.5" name="com.oracle">
<resources>
<resource-root path="ojdbc8.jar" />
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.transaction.api"/>
</dependencies>
</module>
추가로 동일한 위치에 라이브러리를 복사해줍시다.
저의 경우 oracle 19c 를 사용하므로 ojdbc8.jar 를 복사했습니다.
이후 jboss 실행 시 정상적으로 JNDI가 연결됨을 확인 할 수 있습니다.
'IT > Middleware' 카테고리의 다른 글
VSCODE 문자열 일괄 변경 (전체 변경) (0) | 2023.06.27 |
---|---|
VirtualBox 네트워크 인터페이스 찾을 수 없을때 (버츄얼박스) (0) | 2023.03.15 |
Apache SSL 적용 방법 #Feat. ubuntu 22.04 (21) | 2022.12.15 |
Apache SSL 인증서 생성 방법 (2) | 2022.12.15 |
Jboss eap 7.4 + Oracle 19c 다운로드 및 설치 (1) | 2022.11.24 |
댓글