首页 > 解决方案 > Windows/Linux 上的自由

问题描述

我尝试在 Liberty 上部署一个 JAVA 应用程序(我将使用 <> 作为占位符)

  1. 在 Windows 上:如果我在 Add and Remove.. Ressource 的帮助下将我的应用程序添加到 Ecipe 中,该应用程序将在 Liberty 上成功运行。在\wlp\usr\servers\<ServerName>\apps一个新文件<MyAppName>.war.xml中创建:

<dir sourceOnDisk="C:\<MyAppName>\<MyAppName>-source\src\main\webapp" targetInArchive="/"/>

  1. 在 Windows 上:如果我在\wlp\usr\servers\<ServerName>\apps文件中<MyAppName>.war.xml手动创建并将其链接到<MyApp>.war目录:

<dir sourceOnDisk="C:\Users\<userName>\Desktop\<MyAppName>.war" targetInArchive="/"/>
应用程序成功运行。

  1. 在 Linux 上:我现在想在 Linux 上的 Liberty 服务器上部署相同的战争。问题在于目录的结构——它与 Windows 完全不同。在 appl 目录下,有以下子目录: appl_dropins wl_config

我必须把文件放在哪里<MyAppName>.war.xml?和server.xml?为什么在 Linux 上如此不同?

在 Windows 上,该结构用于<ServerName>应用程序、dropins、日志、资源、tranlog、工作区 + 文件 server.xml

先感谢您。

标签: websphere-liberty

解决方案


当您直接从 Eclipse 部署时,它默认指向工作区,这有利于开发,但不适合部署到其他环境。

您有以下选择:

  • war通过取消选中“直接从工作区运行应用程序”将 Eclipse 中的发布选项更改为发布
  • 使用 Export > War 文件从 Eclipse 导出应用程序
  • 或创建打包服务器 - 右键单击​​您的服务器选择实用程序 > 打包服务器,然后使用“usr”选项。

打包服务器选项非常适合在环境之间移动,因为它收集了所有 - 应用程序、server.xml 以及您在服务器文件夹中拥有的任何其他文件。然后,您只需在目标主机上解压缩存档并运行服务器。

正如 Alasdair 所说,Win 和 Linux 之间的目录结构没有区别,所以要么你在 Linux 上有一些不同的产品,要么它是由某人或某些工具大量定制的。


推荐阅读