在不同于 localhost 的地址上使用 wildfly maven 插件部署应用程序
Posted
技术标签:
【中文标题】在不同于 localhost 的地址上使用 wildfly maven 插件部署应用程序【英文标题】:Deploy app using wildfly maven plugin on an address different than localhost 【发布时间】:2014-08-01 19:56:43 【问题描述】:我对 maven 和 wildfly 有点陌生。我可以使用 eclipse 和 wildfly-maven-plugin 在 127.0.0.1:8080/myapp 上成功部署我的应用程序,但我想将它部署在我机器的 IP 地址(192.168.0.101)上,以便我可以从另一台计算机访问它.我的 POM 如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.vch.apps</groupId>
<artifactId>myapp-chat</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>vch-myapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.0.13</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.3</version>
</dependency>
</dependencies>
<profiles>
<profile>
<id>profileIP</id>
<build>
<finalName>myapp</finalName>
<plugins>
<plugin>
<groupId>org.wildfly.plugins</groupId>
<artifactId>wildfly-maven-plugin</artifactId>
<version>1.0.1.Final</version>
<configuration>
<jbossHome>/usr/local/wildfly-8.0.0.Final</jbossHome>
<!--hostname>192.168.0.101</hostname>
<port>8080</port-->
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
如果我从 Eclipse 执行 wilfly:run 并在 Eclipse 的 Profiles 框中指定 profileIP,我下载并解压到 '/usr/local/wildfly-8.0.0.Final' 的 wildfly 将从 127.0.0.1 开始: 8080 和我的应用程序将部署到这个地址。 如果我取消注释主机名和端口元素,我的应用程序仍部署在 localhost 上。
有没有办法使用 maven 插件在 hostname 元素中指定的 ip 上部署我的应用程序,或者我是否需要更改 wildfly 文件夹中的配置文件?我只下载了wildfly并解压,并没有在eclipse中添加任何wildlfy服务器。
【问题讨论】:
【参考方案1】:您似乎想改用deploy
目标。正如您所说,run
目标确实可以选择下载 WildFly,启动它并部署您的应用程序。如果您使用指定的主机名和端口,它实际上也应该失败。如果不是,那听起来像是一个错误。
在 WildFly 方面,如果您想启动服务器以便它在不同的 IP 上运行或可供所有 IP 访问,您需要在启动独立服务器时使用 -b
选项。默认情况下可以通过系统属性jboss.http.port
覆盖端口。
以下将启动 WildFly 侦听所有可用 IP 的端口 80。
$JBOSS_HOME/bin/standalone.sh -b 0.0.0.0 -Djboss.http.port=80
以上设置只是临时的,并且是仅限 HTTP 的设置。默认情况下,管理在 localhost 上的端口 9990 上侦听。您可以在documentation获取更多关于接口和端口的信息。
【讨论】:
感谢您的回答。我没有说当我执行运行目标时会下载wildfly。如果您没有在 POM.xml 中指定我设法通过为 wildfly 用户控制台添加一个用户(使用 add-user.sh)来做我想做的事情:127.0.0.1:9990/console/
在控制台中,我转到 Porfile -> General COnfiguration -> Interfaces 并将公共接口的 Inet 地址更改为: $jboss.bind.address:192.168.0.101 这是我本地机器的网络 IP .我没有对我的 POM 进行任何更改,现在我可以执行 widlfy:run 并指定 profileIP 来启动我的 Wildfly 服务器并将我的应用程序部署在: 192.168.0.100:8080/myapp.
【讨论】:
【参考方案3】:您必须使用配置文件和 pom.xml 正确配置 settings.xml 文件才能在命令行上读取配置文件。更多详情,请参阅post
【讨论】:
以上是关于在不同于 localhost 的地址上使用 wildfly maven 插件部署应用程序的主要内容,如果未能解决你的问题,请参考以下文章