是否可以将 JAX-RS Web 服务部署到 MobileFirst Server?

Posted

技术标签:

【中文标题】是否可以将 JAX-RS Web 服务部署到 MobileFirst Server?【英文标题】:Is it possible to deploy a JAX-RS web service to MobileFirst Server? 【发布时间】:2015-05-08 05:18:12 【问题描述】:

我的团队正致力于将混合应用程序从 Tibco Silver Mobile(TSM) 平台迁移到 IBM MobileFirst 平台。

我有一个使用当前托管在 TSM 服务器上的 Weblogic IDE 开发的 JAX-RS Web 服务。此 Web 服务对所有传入的后端请求进行安全检查,如果请求来自有效来源,则将其传递给后端。

当应用程序将从 TSM 迁移到 MobileFirst 平台时,TSM 服务器将移出场景。我正在寻找一些替代选项来托管这个 JAX-RS 网络服务。我不想对 Web 服务进行任何更改,因为它是基于 TSM 的解决方案中使用的经过测试和验证的代码。

我从 IBM MobileFirst Platform 7.0 文档中了解到,现在 MobileFirst Server 上提供了 JAX-RS 支持,并且可以开发基于 JAX-RS 规范的 Java 适配器并将其部署到服务器。

我能否在不进行任何自定义的情况下将上述 web 服务 .WAR 文件部署到 MobileFirst Server?

如果是,将 Web 服务 (.WAR) 部署到 MobileFirst Server 的过程是什么? 如果不是,可以考虑哪些替代方案?

【问题讨论】:

我相信还没有人这样做过,因此很难提供确认。 MFP 7.0 中基于 JAX-RS 的 Java 适配器被打包并部署到服务器,而您正在谈论位于应用程序服务器中 MFP 旁边的 .war 文件 webapp(您将 .war 文件部署到 WAS/Liberty/ Tomcat - 不是 MFP 服务器)。我的猜测是事情应该可以工作,但我建议您自己尝试一下,看看效果如何。至少在开发环境中部署 .war 文件意味着只需将其放在文件系统中的其他 .war 文件旁边并重新启动 Eclipse。 如果您打算将 JAX-RS 服务按原样部署到部署 MFP 的同一个 Liberty 配置文件服务器,那么应​​该没有问题。 Liberty Profile 支持 JAX-RS 1.1 规范,因此如果您的应用程序符合此规范,那么它应该可以工作。如果您想通过 MFP 安全性轻松保护您的 JAX-RS 服务或从服务内部使用 MFP 服务器 api,请考虑使用 Java 适配器。转换为 Java 适配器需要一些努力(这不仅仅是使用您拥有的 WAR),但它可能值得(取决于您的需求) 【参考方案1】:

如上面的 cmets 所示:

MFP 服务器实际上是部署到受支持的 Java EE 应用程序服务器的 Java EE 应用程序,WebSphere Liberty 或完整的 WebSphere ND 是常规选项,但也支持 TomCat。

原则上,您自己的 JAX/RS WAR 文件可以部署到这些相同的服务器上,具体细节将取决于您所利用的 Java EE 特性,并且您需要了解这些 Java EE 服务器的管理模型。 MFP 本身不受此影响,您无需具备 MFP 知识即可执行此操作。您只需要了解所选的 Java EE 服务器。我个人会从 WebSphere Liberty 开始。

另一个问题是将您的 JAX/RS 和 Mobile First 服务器隔离到它们自己的 Java EE 服务器实例中是否更好。如果将事物分开,管理和扩展可能会更容易,但从技术上讲,如果你将它们放在一起,应该不会受到干扰。启动专用 Liberty 服务器非常简单。

一个更有趣的问题是,实际利用 MFP 适配器功能来创建 JAX/RS 服务是否有价值。实际上,它是您熟悉的 JAX/RS 编程模型,但打包方式略有不同,部署为 MFP 适配器,并可选择显式利用 MFP 安全模型并轻松调用其他 MFP 适配器。

就个人而言,如果我要进入一个没有现有 JAX/RS 服务的项目,并且已经致力于 MFP 及其安全模型,那么我会在 MFP 适配器中执行我的 JAX/RS。

【讨论】:

以上是关于是否可以将 JAX-RS Web 服务部署到 MobileFirst Server?的主要内容,如果未能解决你的问题,请参考以下文章

JAX-RS的介绍

JBoss RESTEasy 无法扫描 WEB-INF 以获取 JAX-RS 注释

JAX-RS(基于Jersey) + Spring 4.x + MyBatis构建REST服务架构

从JAX-RS服务发送重定向

是否可以使用没有docker的gitlab-ci将简单的Java Web应用程序部署到本地服务器?

如何正确中断 JAX-RS AJAX 请求