【问题标题】:How to deploy java application on different server?如何在不同的服务器上部署java应用程序?
【发布时间】:2014-05-23 13:59:25
【问题描述】:

如果我想在开源 Glassfish 或 TomEE 等不同服务器上部署一个应用程序。如何在不必为每个应用程序服务器包含不同库的情况下实现这一目标?例如,如果想使用 Jersey 作为其余框架,而 eclipselink 作为持久性框架,我必须确保两者都支持这些框架。但在 TomEE 的情况下,它与 OpenJPA 等其他实现一起提供。

是否可以仅与项目一起交付依赖项,而不是与服务器库 + 项目库的组合? 实现服务器兼容性的好方法是什么?

任何描述解决方案或帮助我理解为什么这样做的信息或链接都会很棒。

提前致谢

【问题讨论】:

    标签: java jakarta-ee glassfish-4 apache-tomee


    【解决方案1】:

    这更多是一个应用服务器类加载问题,通常所有应用服务器都提供了一个配置文件,您可以将其放入应用程序并指示服务器加载 Web 应用程序中包含的库,而不是现有的库应用服务器。例如,Weblogic 有一个 weblogic.xml 文件,该文件位于 WEB-INF of war 应用程序中,您可以在其中指示服务器首选应用程序打包库。对于 JBoss,有类似的配置文件jboss-deployment-structure.xml。这样,即使服务器具有等效库,也更容易拥有包含所有依赖项的自包含应用程序。你也可以升级到比应用服务器支持的更高版本的库,否则你必须求助于各种黑客。

    【讨论】:

      【解决方案2】:

      我能想到的简单解决方案是使用ant 任务为每个服务器创建战争文件。现实中你最多可以拥有 2-3 台服务器,例如 tomcat ee、jboss 和 glasfish。因此,为每个任务创建 3 个 ant 任务,例如 tomcatWar、jbossWar 和 glassfishWar,每个 ant 任务确保在战争中也运送所需的罐子。这是更简单和可扩展的解决方案,也易于理解和修改以适应新需求。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-03
        • 2012-06-23
        • 2017-08-26
        • 1970-01-01
        • 2013-11-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多