oing9179 的笔记本儿

部署 Web Application 到 WildFly 13

Preface

以后可能会在生产环境把 war 部署到 WildFly 里,于是写一篇 blog 记录一下部署方法。

WildFly 开发环境搭建

  1. 这里 下载 “Java EE<版本> Full & Web Distribution” 而不是 “Servlet-Only Distribution”,完整版会带有一个网页版管理界面。
  2. 解压缩
  3. 编辑 IDEA 的 “Run/Debug Configurations”
    Edit Run/Debug Configurations
  4. “Add New Configuration (Alt+Insert)” -> “JBoss Server” -> “Local”
  5. 点击图中的 “Configure”
    Config new WildFly application server
  6. “Add application server (Alt+Insert)”
  7. 填入刚解压的 WildFly 的路径,然后 “OK”
  8. 然后点击 OK 就可以做开发和调试了

去掉浏览器 URL 里自带的 context path

IDEA 默认情况下会部署到有 http://localhost:8080/<context_path> 的路径里,就像这样:
Undesired context path in URL
去掉它的办法也很简单。

  1. 首先先把图中的 context path 删掉
  2. 然后到 webapp/WEB-INF/ 下创建文件 jboss-web.xml,文件内容如下
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="UTF-8"?>
    <jboss-web xmlns="http://www.jboss.com/xml/ns/javaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
    http://www.jboss.com/xml/ns/javaee
    http://www.jboss.org/j2ee/schema/jboss-web_5_1.xsd">
    <!-- context-root 填写你想要的 context path -->
    <context-root>/</context-root>
    </jboss-web>

Done.

在服务器上部署

  1. 进入 WILDFLY_目录/bin
  2. 运行 add-user.sh 跟着向导来添加一个管理员用户
  3. 打开两个终端窗口分别运行 standalone.shjboss-cli.sh
  4. jboss-cli 里输入 connect 即可连接到本地运行的 WildFly CLI 控制台
    1. 如果控制台不是默认的 localhost:9990,那就用 connect <地址>:<端口号> 来连接
  5. 在 jboss-cli 里运行命令来部署一个 web app

    1
    deploy <webapp_path> --name=<webapp_name>.war --runtime-name=<webapp_runtime_name>.war --unmanaged --disabled

    参数说明:

    1. webapp_path: web app 的路径
    2. webapp_name: web app 的实际名称,在整个 WildFly 环境中应该是唯一的
    3. webapp_runtime_name: web app 的运行时名称,后需要用到这个名字
  6. 用浏览器打开 http://localhost:9990,用之前添加的管理员用户来登录
  7. 依次打开 Configuration -> Subsystems -> Web -> Server -> default-server -> View -> Hosts
  8. 点击 “Add” 按钮,按下表填写
    | 名称 | 含义 |
    | :—————– | :—————————– |
    | Name | 网站的域名 |
    | Default Web Module | 上面填写的 webapp_runtime_name |
  9. 然后回到 Deployments,然后启用刚刚部署的 <webapp_name>
    Enable webapp
  10. 配置一下域名指向这个服务器IP

现在就可以通过浏览器域名直接访问新部署的webapp了。

References

  1. WildFly 下载页面 - wildfly.org
  2. WildFly 13 Admin Guide - wildfly.org