WAS/JBOSS_WILDFLY

38. JBoss 7.4 -> 8.1 Migration

by coldplayer83 2026. 10. 20.
728x90
반응형

https://docs.redhat.com/en/documentation/red_hat_jboss_enterprise_application_platform/8.1/html-single/migration_guide/index#simplify-your-server-configuration-migration_simplify-your-jboss-eap-8-migration-with-effective-tools

 

Migration Guide | Red Hat JBoss Enterprise Application Platform | 8.1 | Red Hat Documentation

This section describes additional changes that might be required for migrating an application from JBoss EAP 6.4 or 7.x to JBoss EAP 8.1. As part of Jakarta EE Concurrency 3.0, you can customize the ContextService property by using context types. The Trans

docs.redhat.com

 

1. 7.4 서버 중지 후 백업

 

2. 8.1 서버 설치(기동x)

인스턴스 하위까지 구성

ex) 기존 7 버전의 AP_name10 인스턴스 복사

 

3. JBoss Server Migration Tool로 설정 변환

https://docs.redhat.com/en/documentation/red_hat_jboss_enterprise_application_platform/8.1/html-single/using_the_jboss_server_migration_tool/index?utm_source=chatgpt.com

 

Using the JBoss Server Migration Tool | Red Hat JBoss Enterprise Application Platform | 8.1 | Red Hat Documentation

Red Hat JBoss Enterprise Application Platform FormatMulti-pageSingle-pageView full doc as PDF

docs.redhat.com

 

1) tool 다운로드 후 별도 경로에 압축 해제

https://access.redhat.com/downloads/content/application-services/appplatform/8.1/JBEAP-8.1.0/jboss-eap-8.1.0-server-migration.zip

 

The world's open source leader

Red Hat is the world’s leading provider of open source solutions, using a community-powered approach to provide reliable and high-performing cloud, virtualization, storage, Linux, and middleware technologies. Red Hat also offers award-winning support, tr

www.redhat.com

 

2) Migration Tool properties 설정

https://docs.redhat.com/en/documentation/red_hat_jboss_enterprise_application_platform/8.1/html-single/using_the_jboss_server_migration_tool/index?utm_source=chatgpt.com#assembly_configuring-server-migration-tool_server-migration-tool

 

변경할 구성 파일 또는 요소에 대한 내용 설정

${Tool_home}/configuration 경로의 environment.properties 파일 설정

 

###############################################
### JBoss Server Migration Environment ###
###############################################

# Please refer to user guide for these properties specification #

####### REPORTS

report.html.fileName=migration-report.html
report.html.maxTaskPathSizeToDisplaySubtasks=4
report.html.templateFileName=migration-report-template.html
report.summary.maxTaskPathSizeToDisplaySubtasks=3
report.xml.fileName=migration-report.xml

####### SERVER PATHS

#server.source.standalone.serverDir=standalone
#server.source.standalone.configDir=configuration
#server.source.standalone.configFiles=standalone.xml,standalone-full.xml
#server.source.domain.domainDir=domain
#server.source.domain.configDir=configuration
#server.source.domain.domainConfigFiles=domain.xml
#server.source.domain.hostConfigFiles=host.xml

#server.target.standalone.serverDir=standalone
#server.target.standalone.configDir=configuration
#server.target.domain.domainDir=domain
#server.target.domain.configDir=configuration

####### TASKS

# If set, and the tool is running in non-interactive mode, the source's standalone server configurations are not migrated
#standalone.skip=true

# If set, and the tool is running in non-interactive mode, the source's managed domain configurations are not migrated
#domain.skip=true

### If set any deployment found is not migrated in non-interactive mode
deployments.migrate-deployments.skip=true
### If set any persistent deployment found is not migrated in non-interactive mode
#deployments.migrate-persistent-deployments.skip=true
### If set any deployment found in a directory watched by a deployment scanner, is not migrated in non-interactive mode
#deployments.migrate-deployment-scanner-deployments.skip=true

# a list with module names of extensions to exclude when migrating a server configuration
extensions.excludes=
# a list with module names of extensions to include when migrating a server configuration
extensions.includes=
# if set the migration of a server configuration will not remove any unsupported extensions
#extensions.remove-unsupported-extensions.skip=true

#management.setup-http-upgrade.skip=true
#management.setup-http-upgrade.management-interface.http-interface.enable-http-upgrade.skip=true
#management.setup-http-upgrade.socket-binding.management-https.update-port.port=${jboss.management.https.port:9993}
#management.setup-http-upgrade.socket-binding.management-https.update-port.skip=true

# a list with module names to migrate
modules.includes=
# a list with module names to not migrate
modules.excludes=
#modules.migrate-modules-requested-by-configuration.skip=true
#modules.migrate-modules-requested-by-user.skip=true

### If set no paths referenced in server configurations will be migrated
#paths.migrate-paths-requested-by-configuration.skip=true
### If set no paths referenced in vault configurations will be migrated
#paths.migrate-paths-requested-by-configuration.vault.skip=true
#paths.migrate-paths-requested-by-configuration.vault.KEYSTORE_URL.skip=true
#paths.migrate-paths-requested-by-configuration.vault.ENC_FILE_DIR.skip=true

#security-realms.migrate-properties.skip=true

#socket-binding.ajp.add-port-expression.skip=true
#socket-binding.http.add-port-expression.skip=true
#socket-binding.https.add-port-expression.skip=true
#socket-bindings.add-port-expressions.skip=true

# a list with xml namespaces (without version) of subsystems to exclude when migrating a server configuration
subsystems.excludes=
# a list with xml namespaces (without version) of subsystems to include when migrating a server configuration
subsystems.includes=
# if set the migration of a server configuration will not remove any unsupported subsystem configurations
#subsystems.remove-unsupported-subsystems.skip=true

#subsystem.batch-jberet.add.skip=true

# true이면 EE 서브시스템 전체업데이트 skip
#subsystem.ee.update.skip=true
# true이면 기본 Concurrency Utilities 설정을 추가하지 않음
#subsystem.ee.update.setup-ee-concurrency-utilities.skip=true
# true이면 Jakarta EE 기본 리소스 바인딩 설정을 건너뜀
#subsystem.ee.update.setup-jakartaee-default-bindings.skip=true
# 기본 Datasource에 연결할 JNDI 이름을 지정
#subsystem.ee.update.setup-jakartaee-default-bindings.defaultDataSourceJndiName=
# 기존 설정에서 기본 Datasource를 찾을 때 사용할 이름
subsystem.ee.update.setup-jakartaee-default-bindings.defaultDataSourceName=ExampleDS
# 기본 JMS Connection Factory의 JNDI 이름을 지정
#subsystem.ee.update.setup-jakartaee-default-bindings.defaultJmsConnectionFactoryJndiName=
# 기본 JMS Connection Factory를 찾을 때 사용할 이름
subsystem.ee.update.setup-jakartaee-default-bindings.defaultJmsConnectionFactoryName=hornetq-ra

#subsystem.ejb3.update.skip=true
#subsystem.ejb3.update.add-infinispan-passivation-store-and-distributable-cache.skip=true
#subsystem.ejb3.update.setup-default-sfsb-passivation-disabled-cache.skip=true
#subsystem.ejb3.update.activate-ejb3-remoting-http-connector.skip=true

#subsystem.infinispan.update.skip=false
#subsystem.infinispan.update.add-infinispan-ejb-cache.skip=true
#subsystem.infinispan.update.add-infinispan-server-cache.skip=true
#subsystem.infinispan.update.fix-hibernate-cache-module-name.skip=true

#subsystem.jacorb.migrate.skip=true

subsystem.logging.update.remove-console-handler.skip=true

#subsystem.messaging.migrate.skip=true

#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.httpAcceptorName=
#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.httpConnectorName=
#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.skip=true
#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.socketBindingName=
#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.undertowHttpListenerName=
#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.undertowServerName=
#subsystem.messaging-activemq.update.skip:

#subsystem.remoting.update.skip=true
#subsystem.remoting.update.add-remoting-http-connector.skip=true

#subsystem.request-controller.add.skip=true

#subsystem.security-manager.add.skip=true

#subsystem.singleton.add.skip=true

#subsystem.undertow.update.skip=true
#subsystem.undertow.update.add-undertow-default-buffer-cache.skip=true
#subsystem.undertow.update.add-undertow-websockets.skip=true
#subsystem.undertow.update.migrate-undertow-http-listener.skip=true

 

설정 예시)

###############################################
### JBoss Server Migration Environment ###
###############################################

# Please refer to user guide for these properties specification #

####### REPORTS

report.html.fileName=migration-report.html
report.html.maxTaskPathSizeToDisplaySubtasks=4
report.html.templateFileName=migration-report-template.html
report.summary.maxTaskPathSizeToDisplaySubtasks=3
report.xml.fileName=migration-report.xml

####### SERVER PATHS

server.source.standalone.serverDir=/sw/jboss-eap-7.4/domains/AP_name10
server.source.standalone.configDir=configuration
server.source.standalone.configFiles=standalone-ha.xml
#server.source.domain.domainDir=domain
#server.source.domain.configDir=configuration
#server.source.domain.domainConfigFiles=domain.xml
#server.source.domain.hostConfigFiles=host.xml

server.target.standalone.serverDir=/sw/jboss-eap-8.1/domains/AP_name10
server.target.standalone.configDir=configuration
#server.target.domain.domainDir=domain
#server.target.domain.configDir=configuration

####### TASKS

# If set, and the tool is running in non-interactive mode, the source's standalone server configurations are not migrated
#standalone.skip=true

# If set, and the tool is running in non-interactive mode, the source's managed domain configurations are not migrated
domain.skip=true

### If set any deployment found is not migrated in non-interactive mode
#deployments.migrate-deployments.skip=true
### If set any persistent deployment found is not migrated in non-interactive mode
#deployments.migrate-persistent-deployments.skip=true
### If set any deployment found in a directory watched by a deployment scanner, is not migrated in non-interactive mode
#deployments.migrate-deployment-scanner-deployments.skip=true

# a list with module names of extensions to exclude when migrating a server configuration
extensions.excludes=
# a list with module names of extensions to include when migrating a server configuration
extensions.includes=
# if set the migration of a server configuration will not remove any unsupported extensions
#extensions.remove-unsupported-extensions.skip=true

#management.setup-http-upgrade.skip=true
#management.setup-http-upgrade.management-interface.http-interface.enable-http-upgrade.skip=true
#management.setup-http-upgrade.socket-binding.management-https.update-port.port=${jboss.management.https.port:9993}
#management.setup-http-upgrade.socket-binding.management-https.update-port.skip=true

# a list with module names to migrate
modules.includes=
# a list with module names to not migrate
modules.excludes=
#modules.migrate-modules-requested-by-configuration.skip=true
#modules.migrate-modules-requested-by-user.skip=true

### If set no paths referenced in server configurations will be migrated
#paths.migrate-paths-requested-by-configuration.skip=true
### If set no paths referenced in vault configurations will be migrated
#paths.migrate-paths-requested-by-configuration.vault.skip=true
#paths.migrate-paths-requested-by-configuration.vault.KEYSTORE_URL.skip=true
#paths.migrate-paths-requested-by-configuration.vault.ENC_FILE_DIR.skip=true

#security-realms.migrate-properties.skip=true

#socket-binding.ajp.add-port-expression.skip=true
#socket-binding.http.add-port-expression.skip=true
#socket-binding.https.add-port-expression.skip=true
#socket-bindings.add-port-expressions.skip=true

# a list with xml namespaces (without version) of subsystems to exclude when migrating a server configuration
subsystems.excludes=
# a list with xml namespaces (without version) of subsystems to include when migrating a server configuration
subsystems.includes=
# if set the migration of a server configuration will not remove any unsupported subsystem configurations
#subsystems.remove-unsupported-subsystems.skip=true

#subsystem.batch-jberet.add.skip=true

#subsystem.ee.update.skip=true
#subsystem.ee.update.setup-ee-concurrency-utilities.skip=true
subsystem.ee.update.setup-jakartaee-default-bindings.skip=false
subsystem.ee.update.setup-jakartaee-default-bindings.defaultDataSourceJndiName=PostgresDS
subsystem.ee.update.setup-jakartaee-default-bindings.defaultDataSourceName=java:jboss/datasources/PostgresDS
#subsystem.ee.update.setup-jakartaee-default-bindings.defaultJmsConnectionFactoryJndiName=
#subsystem.ee.update.setup-jakartaee-default-bindings.defaultJmsConnectionFactoryName=hornetq-ra

#subsystem.ejb3.update.skip=true
#subsystem.ejb3.update.add-infinispan-passivation-store-and-distributable-cache.skip=true
#subsystem.ejb3.update.setup-default-sfsb-passivation-disabled-cache.skip=true
#subsystem.ejb3.update.activate-ejb3-remoting-http-connector.skip=true

#subsystem.infinispan.update.skip=false
#subsystem.infinispan.update.add-infinispan-ejb-cache.skip=true
#subsystem.infinispan.update.add-infinispan-server-cache.skip=true
#subsystem.infinispan.update.fix-hibernate-cache-module-name.skip=true

#subsystem.jacorb.migrate.skip=true

subsystem.logging.update.remove-console-handler.skip=true

#subsystem.messaging.migrate.skip=true

#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.httpAcceptorName=
#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.httpConnectorName=
#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.skip=true
#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.socketBindingName=
#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.undertowHttpListenerName=
#subsystem.messaging-activemq.update.add-messaging-http-acceptors-and-connectors.undertowServerName=
#subsystem.messaging-activemq.update.skip:

#subsystem.remoting.update.skip=true
#subsystem.remoting.update.add-remoting-http-connector.skip=true

#subsystem.request-controller.add.skip=true

#subsystem.security-manager.add.skip=true

#subsystem.singleton.add.skip=true

#subsystem.undertow.update.skip=true
#subsystem.undertow.update.add-undertow-default-buffer-cache.skip=true
#subsystem.undertow.update.add-undertow-websockets.skip=true
#subsystem.undertow.update.migrate-undertow-http-listener.skip=true

#subsystem.web.migrate.skip=true

 

3. JAVA 설정

JBoss 8.1은 jdk 17, jdk21 이상을 지원

jboss-server-migration.sh을 실행하려면 위의 자바 버전이 필요함

환경 변수 설정

JAVA_HOME=/usr/local/bin/jdk-17.0.0.1
PATH=$JAVA_HOME/bin:$PATH

 

4. jboss-server-migration.sh 실행(디폴트 interactive 모드)

!! JBoss 서버 마이그레이션 도구를 실행하면, 설치 시점부터 도구 실행 시점까지 대상 서버에 적용된 모든 변경 사항이 사라짐
또한, 대상 서버 디렉터리에 대해 이 도구를 여러 번 실행하면, 이후 실행 시 처음 실행 시 백업된 원본 설정 파일이 덮어쓰여짐

이는 도구의 각 실행이 구성 파일 뒤에 .beforeMigration을 추가하여 백업하기 때문에, 기존에 백업된 구성 파일이 모두 사라지기 때문

./jboss-server-migration.sh -s /sw/jboss-eap-7.4 -t /sw/jboss-eap-8.1 -e ./configuration/environment.properties

 

 

5. 실행 결과 검토

target 서버의 configuration 디렉토리 내의 기존 conf 파일들은 .beforeMigration 이름으로 백업됨

 

tool 경로의 report 디렉토리에 변경된 내용에 대한 보고서가 생성됨

(..이하 생략)

 

6. logging.properties, env.sh 파일 내용 수정

tool은 loggiong.properties, env.sh 파일 내용은 수정해주지 않음

데이터 소스 암호화 했다면 별도로 재진행 필요(7과 8의 암호화 방식이 다름)

 

7. 어플리케이션 수정

어플리케이션용 마이그레이션 툴이 별도로 존재

https://developers.redhat.com/products/mta/download

 

Download the Migration toolkit for applications | Red Hat Developer

Evaluate container-suitability, analyze source code, and modernize legacy applications to cloud-native technologies faster with the migration toolkit for applications. Architects can build and manage

developers.redhat.com

 

8. 서버 기동 및 서비스 확인

728x90
반응형

'WAS > JBOSS_WILDFLY' 카테고리의 다른 글

37. DataSource DB Password 암호화(JBoss 7)  (0) 2026.06.01
36. 디폴트 Datasource 제거  (0) 2026.05.19
35. JBoss ERROR 코드  (0) 2026.04.01
34. JBoss 7.4 한글 깨짐 현상  (0) 2026.03.20
33. JBoss session timeout  (0) 2026.03.16

TOP

Designed by 티스토리