V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
movq
V2EX  ›  程序员

RMI 的 Java 后端如何扩展 REST 功能供前端调用

  •  
  •   movq · 37 天前 · 736 次点击
    这是一个创建于 37 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在后端的代码是 RMI 的形式供 client 调用的。client JVM 的 Java 代码,RMI 调用后端 JVM 的 service ,直接获得 Java model 对象。比如一个 service 是List<SomeObject> getObjects()

    现在新增了 JS 前端,所以需要给 Java 后端扩展REST 功能,以供 JS 前端获取数据。前端不能直接拿到 Java 的 model ,得拿到 JSON 对象,所以 继续用 RMI 是不行的。

    但不能直接重写后端,因为 RMI 调用还需要保留。

    所以怎么给已有的 Java 后端增加 REST 功能呢?

    7 条回复    2024-03-21 10:05:30 +08:00
    cubecube
        1
    cubecube  
       37 天前
    最简单的方式,创建一个 HttpServer 就行
    Braisdom
        2
    Braisdom  
       37 天前
    只能是 RMI 协议上包装一层。
    wolfie
        3
    wolfie  
       37 天前
    HttpServer 、ServerSocket
    movq
        4
    movq  
    OP
       37 天前 via iPhone
    @cubecube
    @wolfie 如果我没理解错的话,你们的意思是再创建一个 http 服务器 A 做中介,A 和原来的服务器 B 进行 RMI 交互,同时 A 负责把从服务器 B 拿到的/传给 B 的 Java 对象进行序列化和反序列化,和前端进行 REST 传输?
    wolfie
        5
    wolfie  
       37 天前
    @movq
    第一反应,改后端服务代码,加个 HttpServer 工作量最小。
    新增一个转发服务也行,自由度更高点。
    silentsky
        6
    silentsky  
       37 天前 via Android
    如果是使用 spring 的话 直接将 @service 改成注解 @controller 再配上 URL 搞定
    cubecube
        7
    cubecube  
       37 天前
    @movq 有 RMI 的后端你能改的话,直接代码里面加一个入口就行呀
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2708 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 11:05 · PVG 19:05 · LAX 04:05 · JFK 07:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.