2013-05-02 131 views
2

我在Windows环境中开发了一个使用Netbeans(使用Java,JSP和JQuery)的应用程序。现在我准备将应用程序传输到Web主机,以便应用程序可以在Web上使用,并且我被告知该应用程序将不得不移到Linux环境(已经购买的托管服务)。这是我的担忧:将Web应用程序(Java/JSP)移动到Web服务器

  • 如何将我的代码转换为Linux?有没有一个自动工具呢?
  • 如何把我的应用程序部署到服务器在线(什么我需要复制到哪个目录在网络上?)
  • 我的应用程序写入到基于C的目录:我的笔记本电脑驱动器,是我应该做的使应用程序写入正确的目录在Web服务器上的指定目录?

我已经阅读这里和那里在线,但只是没有得到具体的解决方案。

+0

用户是否可以从网络服务器下载你的应用程序并在本地执行它,或者你期望应用程序在网络服务器内运行,用户使用浏览器通过互联网与它进行交互? – 2013-05-02 14:09:38

+0

应用程序将在Web服务器内运行,用户将通过浏览器与应用程序交互。 – bdfios 2013-05-02 14:16:01

+0

您需要查看导出包含您的应用程序的战争文件。 – 2013-05-02 18:49:34

回答

3

如何将我的代码转换为Linux?有没有一个自动工具呢?

其中一个Java的主要功能是portability,所以只要你还没有使用任何特定的操作系统的代码运行一样使用CMD或类似的或者说是依赖于操作系统的(这是罕见的在库的程序这些时间,但还有一些),那么你没有任何事情要做。

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

你需要生成一个WAR file。该文件将压缩所有网页(JSP)和网络资源(js,css,图像文件)以及Java二进制文件(* .class)和库(必须位于WEB-INF/lib文件夹中)。

既然你与NetBeans工作,这里的Q/A生成war文件:How can I create a war file of my project in NetBeans?

这场战争文件必须被放置在您的Web应用程序服务器的部署文件夹。通常,托管为您提供管理主机的工具(通常是网页上的用户名和密码链接),您应该根据这一要求(或自己找到)上传战争文件的选项。

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

您需要配置这条道路作为常数在你的应用程序,甚至更好,为了将其配置在一个属性文件(或其他地方)被读取并通过您的应用程序轻松地使用它。请记住,路径应该是通用的,几乎在每个操作系统中都可以支持。例如,如果您使用的路径与名称

C:\some\path\for\files 

其一般形式是:

/some/path/for/files 

既然你要在Linux上工作,确保执行谁Tomcat的用户(或您将在生产中使用的Web应用程序服务器)具有足够的权限来写入该文件夹。这可以轻松完成(这里有人可以在此请修复)使用chown命令:

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

这里的另一个Q/A来管理Java Web应用程序文件和路径:首先How to provide relative path in File class to upload any file?

+0

非常感谢您花时间解释这一点。我只是尝试将我的.war文件放在webapps目录中,重新启动tomcat并正确部署......但仍然在我的笔记本电脑上。我会在我的虚拟主机上试试这个。谢谢! – bdfios 2013-05-02 14:23:33

+0

只是我正在寻找的答案!虽然我仍然对File Directory部分感到困惑!我会再次通过链接(目前,我的理解很少)。感谢mil,Luiggi! – Saturnian 2014-06-14 10:35:56

1

OK,想法很少:

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

是的,我在代码中有一个进程,每隔几分钟自动清理一次目录。感谢您分享您的想法。 – bdfios 2013-05-02 14:25:18