You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Maven多模块内部应用配置可启停的JAX-RS REST服务端

可用技术方向

方案1:嵌入式JAX-RS容器(完全符合你要的编程式启停需求)

  • 首选 Jersey + 嵌入式Grizzly服务器:Jersey是JAX-RS官方参考实现,原生支持和Grizzly嵌入式HTTP容器集成,仅需几行代码即可完成服务启动、停止控制,启动时会自动扫描所有你用JAX-RS注解开发的API资源,无需额外部署独立服务器。
  • 备选 RESTEasy + 嵌入式Undertow/Jetty:RESTEasy是JBoss出品的JAX-RS实现,可搭配Undertow、Jetty这类轻量嵌入式Servlet容器使用,启动速度更快,资源占用更低,同样支持完全的代码级启停控制。

方案2:同JVM直接调用(无需HTTP服务,仅适用前后端同进程部署场景)

如果你的Frontend和Backend模块最终会打包运行在同一个JVM进程内,完全不需要走HTTP协议调用,可以直接在Frontend模块依赖Backend的服务层Bean,跳过REST API层直接调用方法,省去HTTP服务的开发成本。

搜索参考关键词

如果你要自行查找资料,可搜索:Jersey 嵌入式Grizzly集成、RESTEasy Undertow 嵌入式启动、JAX-RS 可编程启停服务

极简实现思路(以Jersey+Grizzly为例)

  1. 在backend的core模块pom.xml中引入jersey-server、jersey-container-grizzly2-http依赖
  2. 在backend模块中封装ServerManager工具类,对外暴露startServer()、stopServer()方法:
    • startServer()逻辑:构造ResourceConfig实例指定JAX-RS资源类所在的包路径,调用GrizzlyHttpServerFactory.createHttpServer()绑定端口启动服务即可
    • stopServer()逻辑:直接调用Grizzly server实例的shutdown()方法完成服务终止
  3. Frontend模块依赖Backend模块,直接调用上述封装好的两个方法即可实现需求

内容的提问来源于stack exchange,提问作者thorald_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 10:18:02