【问题标题】:Moving web application (Java/JSP) to a web server将 Web 应用程序 (Java/JSP) 移动到 Web 服务器
【发布时间】:2013-04-26 17:42:18
【问题描述】:

我在 Windows 环境中使用 Netbeans(使用 Java、JSP 和 JQuery)开发了一个应用程序。现在我准备将应用程序转移到网络主机,以便应用程序可以在 Web 上使用,并且我被告知必须将应用程序移动到 linux 环境(已经购买了托管服务)。以下是我的担忧:

  • 如何将我的代码转换为 Linux?有自动工具吗?
  • 如何将我的应用程序在线部署到服务器(我需要复制什么以及复制到网络上的哪个目录?)
  • 我的应用程序写入笔记本电脑上 c:drive 上的目录,我应该怎么做才能使应用程序写入正确的目录,即 Web 服务器上的指定目录?

我在网上到处阅读,但还没有具体的解决方案。

【问题讨论】:

  • 用户会从网络服务器下载您的应用程序并在本地执行它,还是您希望应用程序在网络服务器内运行并且用户使用浏览器通过互联网与其交互?
  • 应用程序将在 Web 服务器内运行,用户将通过浏览器与应用程序进行交互。
  • 您需要考虑导出包含您的应用程序的战争文件。

标签: java deployment web


【解决方案1】:

如何将我的代码转换为 Linux?有自动工具吗?

Java 的关键特性之一是portability,因此只要您没有使用任何特定于操作系统的代码,例如使用 CMD 或类似的程序运行程序或依赖于操作系统的库(这在这些时间,但还有一些),那么你就没有什么可做的了。

如何在线部署我的应用到服务器(我需要复制什么以及到网络上的什么目录?)

您需要生成一个WAR file。此文件将压缩您的所有网页 (JSP) 和 Web 资源(js、css、图像文件)以及 Java 二进制文件 (*.class) 和库(必须在 WEB-INF/lib 文件夹)。

由于您使用的是 NetBeans,因此这里有一个用于生成 war 文件的问答:How can I create a war file of my project in NetBeans?

这个war文件必须放在你的web应用服务器的deploy文件夹中。通常,主机会为您提供管理主机的工具(通常是带有用户名和密码的网络链接),基于此您应该询问(或自己查找)上传war文件的选项。

我的应用程序写入笔记本电脑上 c:drive 上的一个目录,我应该怎么做才能使应用程序写入到 Web 服务器上指定目录的正确目录?

您需要将此路径配置为您的应用程序中的常量,或者更好的是,在属性文件(或其他地方)中配置它,以便您的应用程序轻松读取和使用它。请记住,几乎每个操作系统都支持该路径。例如,如果您使用带名称的路径

C:\some\path\for\files

它的一般形式是:

/some/path/for/files

由于您将在 Linux 上工作,因此请确保执行 Tomcat(或您将在生产中使用的 Web 应用程序服务器)的用户有足够的权限在该文件夹上进行写入。这可以使用chown 命令轻松完成(这里有人可以解决这个问题):

#> chown -R user /some/path/for/files

这是另一个管理 Java Web 应用程序文件和路径的问答:How to provide relative path in File class to upload any file?

【讨论】:

  • 非常感谢您花时间解释这一点。我只是尝试将我的 .war 文件扔到 webapps 目录中,重新启动 tomcat 并正确部署......不过仍然在我的笔记本电脑上。我会在我的虚拟主机上试试这个。谢谢!
  • 正是我正在寻找的答案!虽然我仍然对文件目录部分感到困惑!我将再次通过链接(暂时,我了解的很少)。谢谢你,Luiggi!
【解决方案2】:

好的,首先有几个想法:

  1. 将代码转换为 Linux。一旦你有了你的战争文件,你就可以部署它们。最好在文件中使用 UTF8 编码,特别是在使用特殊字符的情况下,但这将是您在部署时可以测试的问题,也可能取决于 Linux 配置。话虽如此,Java 是可移植的,您只需确保您创建的存档与安装在 Linux 主机上的 AppServer 兼容。您应该从托管站点/公司获得有关部署环境所需的所有信息。
  2. 部署将因站点而异,他们应该会为您提供所有说明。
  3. 这里你可能有问题。我想说最简单的方法是将目录映射到属性文件中并在您使用它的每台机器上对其进行自定义。到目前为止,这是最容易的部分。但是,您应该检查您的站点是否允许您访问目录,并注意空间限制和文件清理。如果你得到了,比如说 100MB,而你每天使用 10MB,那么 10 天后你可能会遇到麻烦......

【讨论】:

  • 是的,我在代码中有一个进程,每隔几分钟就会自动清理一次目录。感谢您分享您对此的看法。
猜你喜欢
  • 2014-02-20
  • 1970-01-01
  • 1970-01-01
  • 2011-10-08
  • 1970-01-01
  • 2012-10-03
  • 1970-01-01
  • 2023-04-04
  • 2023-04-02
相关资源
最近更新 更多