java - war文件可以部署在任何服务器上吗?

标签 java deployment tomcat websphere

如果这个问题很愚蠢,请原谅我。假设我使用 Spring 框架和 MS SQL-Server 数据库开发了一个 J2EE web 应用程序,并使用了 WebSphere 应用程序服务器。我后来为这个应用程序创建了一个 WAR 文件。

我可以在不更改任何代码的情况下将此 WAR 文件部署到 Tomcat 服务器上吗?或者我的问题是这可以由仅提供 Tomcat 服务器的虚拟主机托管吗?如果是,是否需要更改代码?

如果不能部署,你能建议我怎么做吗,因为我没有在tomcat服务器上开发过任何应用程序。我开发的所有应用程序都在使用 RAD 的 Websphere App Server 上。

最佳答案

原则上,是的,WAR 文件应该可以跨 Java EE 服务器移植。实际上,我预计不会出现很多可移植性问题,但这在很大程度上取决于您的应用程序的细节以及您是否非常严格地遵守 Java EE 标准。此外,仅将您的应用程序部署到不同的环境(您的开发机器与托管环境)可能会遇到障碍,与其说是 WAS v Tomcat,不如说是这个环境 v 那个环境。

可能的问题,可能性降序:

1).您是否针对相同版本的标准。

2).您是否使用了任何超出 Java EE 规范的 WebSphere 特定扩展?大多数供应商都有一些额外的好东西,你用过吗?

3).您已经对在目标平台上以不同方式访问的某些资源(文件、目录、打印机、数据库)进行了硬编码。

4).您是否遇到了规范歧义?是否存在 WAS 行为与 Tomcat 行为不同的极端情况。

5).您依赖于 WAS 或您的平台可以快速完成而您的 taget 平台没有的东西。

我的可移植性一般规则:始终在您的预期部署平台范围内尽早进行测试。几乎总是有一些陷阱。如果您及早发现,您可以轻松修复。

关于java - war文件可以部署在任何服务器上吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2642696/

相关文章:

java - java中float的偏移二进制格式

java - Java 8 中的 interned 字符串是否适合垃圾回收?

ruby-on-rails - 如何使用 GitLab CI + Docker + Ansible 部署 Rails 应用程序?

tomcat - Windows Jenkins Slave 和 ssh-agent

spring - 将我基于 spring 的 maven 项目从 JBoss EAP 6 迁移到 tomcat 8.0 时出现异常

java - 如何在过滤器中添加请求 header 并在 Controller 中获取该 header

java - 输入数据未存储在数据库中 - 为什么?

java - 如何在JAVA中更新/替换Kubernetes的部署

java - 部署期间与开发期间从 JAR 文件加载

tomcat - 无法在 Ubuntu 12.04 中启动 Tomcat