有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

用C++或露比调用java Spring服务

我正在学习春假服务,我有关于春假服务的问题

有可能调用Spring REST服务,如C++或Ruby等,其中C++或露比将充当客户端和Spring REST服务作为服务或资源提供者。p>

如果可能的话,有人能举例说明简单、详细的方式吗

问这个问题的原因,如果我们使用JAX WS开发Web服务,那么跨操作将发生在诸如调用C++的基于java的Web服务调用的技术上,反之亦然,同样的事情也可以在REST REST或使用JeSeAPI API框架开发的REST服务中发生。p>


共 (2) 个答案

  1. # 1 楼答案

    是的,这是可能的。当然,关键是序列化/反序列化数据。只要Rest服务接受序列化数据作为输入,并返回序列化数据作为输出

    例如,假设您有一个端点http://www.example.com/public-api/foo,具有可接受的方法GET(它提供数据)

    在春季,您有一个名为Foo的资源。java,它采用以下形式

    class Foo implements Serializable {
         private static long serialVersionUID = -1L;
    
         private String someProperty;
    
         public Foo() {
             ...
         }
    
         public String getSomeProperty() { 
             return this.someProperty; 
         }
    
         public void setSomeProperty(String someProperty) {
             this.someProperty = someProperty;
         }
    
    }
    

    使用以下控制器

    @Controller
    @RequestMapping(value={"/"})
    class FooController {
    
        @RequestMapping(value={"/foo"}, method={RequestMethod.GET})
        public HttpEntity<Foo> foo() {
    
    
            ...
    
            Foo foo = new Foo();
    
            ...
    
            return new ResponseEntity<ResourceSupport>(foo, HttpStatus.OK);
    
        }
    
    
    }
    

    当您在浏览器中访问此项时,它将返回以下文本

    {
       "_self": "http://www.example.com/public-api/foo",
       "someProperty": ...
    }
    

    此输出(在JSON中)可以简单地用Ruby和C++(或任何语言)进行解析。

    输入也一样。与解析JSON不同,您只需发布或放置符合您试图输入的任何资源的JSON数据。要发布或放置新的Foo对象,只需发布或放置具有适当属性的JSON数据

  2. # 2 楼答案

    REST调用只是一个http调用。该服务不关心客户端编码的语言——可以是浏览器,手机,用C++编写,爪哇,C,Objto-C,没关系。p>

    通常,如果要将对象数据从客户机传递到服务,则应使用JSON或XML对其进行编码