gpt4 book ai didi

maven - 使用Maven将Java EE应用程序部署到payara41 Docker容器

转载 作者:行者123 更新时间:2023-12-02 18:33:07 24 4
gpt4 key购买 nike

我正在尝试将简单的基于Maven的Java Web应用程序部署到在Docker容器上运行的payara 41应用程序服务器中。为此,我使用具有以下配置的Glassfish Maven插件:

<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<goals>
<goal>deploy</goal>
</goals>
<id>deploy</id>
</execution>
</executions>
<configuration>
<glassfishDirectory>/path/to/local/payara41/glassfish</glassfishDirectory>
<user>admin</user>
<adminPassword>MyPassword</adminPassword>
<debug>true</debug>
<echo>true</echo>
<domain>
<name>payaradomain</name>
<adminPort>4848</adminPort> <!-- mandatory for mvn glassfish:deploy -->
<httpPort>8080</httpPort>
<httpsPort>8181</httpsPort>
<host>DOCKER_CONTAINER_IP</host>
<jvmOptions>
<option>-Djava.security.auth.login.config=${project.build.testOutputDirectory}/login.conf</option>
</jvmOptions>
<properties>
<property>
<name>server.log-service.file</name>
<value>${domain.log.dir}/server.log</value>
</property>
</properties>
<resourceDescriptor>${project.build.sourceDirectory}/setup/glassfish-resources.xml</resourceDescriptor>
</domain>
<components>
<component>
<name>${project.artifactId}</name>
<artifact>${project.build.directory}/${project.build.finalName}.war</artifact>
</component>
</components>
</configuration>
</plugin>

如您所见,我正在域配置中使用host属性,因为我正尝试部署到一个docker容器,这是一个远程域(这可能是错误的,如果您可以纠正我的话)。

问题是,当我尝试部署应用程序时,得到以下输出:
Domain payaradomain isn't started. Starting it for you.
Domain payaradomain does not exist. Creating it for you.
[/path/to/local/payara41/glassfish/bin/asadmin, create-domain, --echo=true, --terse=true, --interactive=false, --user, admin, -- passwordfile, /tmp/mgfp5897945230218013760.tmp, --domaindir, /path/to/local/payara41/glassfish/domains, --profile, developer, -- adminport, 4848, --instanceport, 8080, --domainproperties, http.ssl.port=8181, payaradomain]
CLI031: Warning: Option "profile" is obsolete and will be ignored.
asadmin --host localhost --port 4848 --user admin --passwordfile /tmp/mgfp5897945230218013760.tmp --interactive=false --echo=true -- terse=true create-domain --adminport 4848 --profile developer --domaindir /path/to/local/payara41/glassfish/domains --instanceport 8080 -- savemasterpassword=false --usemasterpassword=false --domainproperties http.ssl.port=8181 --savelogin=false --nopassword=false --checkports=true payaradomain
CLI130: Could not create domain, payaradomain
Unable to create domain "payaradomain".
For more detail on what might be causing the problem try running maven with the --debug option
or setting the maven-glassfish-plugin "echo" property to "true".

如您所见,maven正在尝试在本地部署应用程序。我认为Maven Glassfish插件的配置有问题。
我正在使用Netbeans 8.0.2,Apache Maven 3.0.5和Java 8

编辑
我使用--debug选项运行了maven,但是得到了相同的输出。我认为这与系统权利无关。有趣的是,我认为Maven正在尝试执行以下命令:
asadmin --host localhost --port 4848 --user admin --passwordfile     /tmp/mgfp2052757567130924436.tmp --interactive=false --echo=true --  terse=true create-domain --adminport 4848 --profile developer --domaindir   /path/to/local/payara41/glassfish/domains --instanceport 8080 --  savemasterpassword=false --usemasterpassword=false --domainproperties   http.ssl.port=8181 --savelogin=false --nopassword=false --checkports=true   payaradomain

在将localhost设置为--host选项的情况下,我认为maven尚未从配置中选择此选项。也许我想念一些东西。

问题是我的本地payara没有运行,这也许就是为什么它无法创建payaradomain的原因。但是在正在运行的Docker容器上,该域已经存在

最佳答案

您可能不应将Docker容器视为“远程部署”,而应在主机上发布所有需要的端口(请参阅run命令的-p选项),而仅在本地进行部署。

关于maven - 使用Maven将Java EE应用程序部署到payara41 Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33272081/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com