Glassfish 7 jmxstartupservice занимает много времени во время развертывания войны в DockerJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Glassfish 7 jmxstartupservice занимает много времени во время развертывания войны в Docker

Сообщение Anonymous »

Я запускаю Glassfish 7 внутри Docker в Windows.
моя война с применением скопирована в /opt/glassfish7/glassfish/domains/domain1/autodeploy/ либо во время сборки изображения, либо с докером cp. /opt/glassfish7/glassfish/domains/domain1/logs/server.log . Это остается простоям время около 100 ~ 110 секунд, затем переходит только к успешному развертыванию. < /P>

Я не устанавливаю папку с автоматической точкой как том. < /P>
< /li>
Старое развертывание успешно удаляется перед исправлением. /> < /ul>
Из -за моего понимания, похоже, что сканер Autodeploy Glassfish продолжает думать, что война изменилась, и запускает перераспределение, даже если он не имеет.

Код: Выделить всё

# java Build Stage
FROM eclipse-temurin:17-jdk-jammy AS build

RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates && rm -rf /var/lib/apt/lists/*

WORKDIR /app
COPY . .

# Build war file
RUN --mount=type=cache,target=/root/.m2 chmod +x ./mvnw && ./mvnw -f pom.xml clean package

# Deployment Stage
FROM ghcr.io/eclipse-ee4j/glassfish

# Copy WAR to autodeploy
COPY --from=build /app/target/*.war /opt/glassfish7/glassfish/domains/domain1/autodeploy/web.war
И это мой docker-compose.yaml :

Код: Выделить всё

version: '3.8'

services:
servlet_app:
container_name: ${APP_CONTAINER_NAME}
user: root
restart: always
image: clinic_management_app:latest
volumes:
- ./src/main/Content:${FILE_UPLOAD_PATH}
- ./src/main/Logs:${LOG_PATH}
- ./src/main/Database:${DB_SOURCE_PATH}
build: .
ports:
- "8080:8080"
- "4848:4848"
environment:
JTA_DATA_SOURCE: ${JTA_DATA_SOURCE}

FILE_UPLOAD_PATH: ${FILE_UPLOAD_PATH}
LOG_PATH: ${LOG_PATH}
UNAUTHORIZED_PAGE: ${UNAUTHORIZED_PAGE}
INTERNAL_ERROR_PAGE: ${INTERNAL_ERROR_PAGE}
NOT_FOUND_PAGE: ${NOT_FOUND_PAGE}

DB_NAME: ${DB_NAME}
DB_SYSTEM_PATH: ${DB_SYSTEM_PATH}
DB_SEQUENCE_FILE_NAME: ${DB_SEQUENCE_FILE_NAME}
DB_SOURCE_PATH: ${DB_SOURCE_PATH}
Чтобы устранить возможные проблемы с Autodeploy, я попытался выполнить ручное развертывание через консоль администратора Glassfish (http: // localhost: 4848):

Зарегистрировано в консоле администратора. Развертывание. < /P>
< /li>
выбрал мой файл войны с локальной машины. < /P>
< /li>
выбрал цель развертывания по умолчанию (сервер). < /P>
< /li>
оставленные все настройки в качестве дефицита (. false). < /p>
< /li>
Нажмите OK для развертывания. Завершается-то же самое, что я вижу при использовании Autodeploy /.
Это последняя строка перед длинным периодом холостого хода:

Код: Выделить всё

 [#|2025-08-12T09:03:01.771952Z|INFO|GF 7.0.23|jakarta.enterprise.system.jmx|...|JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://54f5307ef096:8686/jndi/rmi://54f5307ef096:8686/jmxrmi|#]
< /code>
После этого примерно 92 секунды NO log[#|2025-08-12T09:03:45.112843Z|INFO|GF 7.0.23|...|web was successfully deployed in 93,498 milliseconds.|#]
Вот полный server.log от запуска до развертывания:
[2025-08-12T14:47:55.261988Z] [] [INFO] [NCLS-GFLAUNCHER-00005] [jakarta.enterprise.launcher] [tid: _ThreadID=1 _ThreadName=main] [levelValue: 800] [[
JVM invocation command line:
/opt/java/openjdk/bin/java
-cp
/opt/glassfish7/glassfish/modules/glassfish.jar
-DWALL_CLOCK_START=2025-08-12T14:47:54.847684119Z
-XX:+UnlockDiagnosticVMOptions
-XX:NewRatio=2
-Xmx512m
--add-opens=java.base/java.io=ALL-UNNAMED
--add-opens=java.base/java.lang=ALL-UNNAMED
--add-opens=java.base/java.util=ALL-UNNAMED
--add-opens=java.base/sun.nio.fs=ALL-UNNAMED
--add-opens=java.base/sun.net.www.protocol.jrt=ALL-UNNAMED
--add-opens=java.naming/javax.naming.spi=ALL-UNNAMED
--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
--add-opens=jdk.management/com.sun.management.internal=ALL-UNNAMED
--add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED
--add-exports=java.base/jdk.internal.vm.annotation=ALL-UNNAMED
--add-opens=java.base/jdk.internal.vm.annotation=ALL-UNNAMED
-javaagent:/opt/glassfish7/glassfish/lib/monitor/flashlight-agent.jar
-Djava.awt.headless=true
-Djdk.corba.allowOutputStreamSubclass=true
-Djdk.tls.rejectClientInitiatedRenegotiation=true
-Djavax.xml.accessExternalSchema=all
-Djava.security.policy=/opt/glassfish7/glassfish/domains/domain1/config/server.policy
-Djava.security.auth.login.config=/opt/glassfish7/glassfish/domains/domain1/config/login.conf
-Dcom.sun.enterprise.security.httpsOutboundKeyAlias=s1as
-Djavax.net.ssl.keyStore=/opt/glassfish7/glassfish/domains/domain1/config/keystore.jks
-Djavax.net.ssl.trustStore=/opt/glassfish7/glassfish/domains/domain1/config/cacerts.jks
-Djdbc.drivers=org.apache.derby.jdbc.ClientDriver
-DANTLR_USE_DIRECT_CLASS_LOADING=true
-Dcom.sun.enterprise.config.config_environment_factory_class=com.sun.enterprise.config.serverbeans.AppserverConfigEnvironmentFactory
-Dorg.glassfish.additionalOSGiBundlesToStart=org.apache.felix.shell,org.apache.felix.gogo.runtime,org.apache.felix.gogo.shell,org.apache.felix.gogo.command,org.apache.felix.shell.remote,org.apache.felix.fileinstall
-Dosgi.shell.telnet.port=6666
-Dosgi.shell.telnet.maxconn=1
-Dosgi.shell.telnet.ip=127.0.0.1
-Dgosh.args=--nointeractive
-Dfelix.fileinstall.dir=/opt/glassfish7/glassfish/modules/autostart/
-Dfelix.fileinstall.poll=5000
-Dfelix.fileinstall.log.level=2
-Dfelix.fileinstall.bundles.new.start=true
-Dfelix.fileinstall.bundles.startTransient=true
-Dfelix.fileinstall.disableConfigSave=false
-Dorg.glassfish.gmbal.no.multipleUpperBoundsException=true
-Dcom.ctc.wstx.returnNullForDefaultNamespace=true
-Djdk.attach.allowAttachSelf=true
-Dcom.sun.aas.instanceRoot=/opt/glassfish7/glassfish/domains/domain1
-Dcom.sun.aas.installRoot=/opt/glassfish7/glassfish
-Djava.library.path=/opt/glassfish7/glassfish/lib:/usr/java/packages/lib:/usr/lib64:/lib64:/lib:/usr/lib
com.sun.enterprise.glassfish.bootstrap.GlassFishMain
-upgrade
false
-domaindir
/opt/glassfish7/glassfish/domains/domain1
-read-stdin
true
-asadmin-args
--host,,,localhost,,,--port,,,4848,,,--user,,,admin,,,--passwordfile,,,/password.txt,,,--secure=false,,,--terse=false,,,--echo=false,,,--interactive=false,,,start-domain,,,--verbose=false,,,--watchdog=false,,,--debug=false,,,--domaindir,,,/opt/glassfish7/glassfish/domains,,,domain1
-domainname
domain1
-instancename
server
-type
DAS
-verbose
false
-asadmin-classpath
/opt/glassfish7/glassfish/modules/admin-cli.jar
-debug
false
-asadmin-classname
com.sun.enterprise.admin.cli.AdminMain]]
< /code>
Информация об ошибке < /p>

Во время развертывания < /li>
нет журналов. Speed. < /li>
< /ul>
Вопросы: < /p>

Что обычно вызывает длинное окно холостого хода после JMXStartupService, но до того, как ход развертывания будет зарегистрировано, когда нет сильных входных записей? Чтобы увидеть подробные фазы (классовая загрузка, сканирование CDI, Verifier, компиляция JSP и т. Д.), Которые запускаются в этом окне? /> < /li>
будет предварительно развернуться во время сборки изображения (начало домена → развертывание асадмин → остановить домен) и отключение автодеплай>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -in-docker
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»