繁体   English   中英

消费将JSON对象作为请求主体传递的RESTful WebService

[英]Consuming a RESTful WebService passing a JSON object as request body

我已经定义了一个RESTful WebService (通过在JBoss AS 7上使用RESTEasy )来使用JSON数据流。

@PUT
@Path("/send")
@Consumes(MediaType.APPLICATION_JSON)
public Response consumeJSON(Student student) {
    String output = student.toString();
    // Do something...
    return Response.status(200).entity(output).build();
}

如何通过正确使用RestTemplate ,将Java对象映射到JSON并将其作为请求主体传递,从另一个基于Spring的Web应用程序中调用WS?


注意:我问的是Spring,目的是研究框架提供的功能。 我很清楚,可以通过手动定义请求主体来做到这一点。

V干杯

在客户端应用程序中,您可以创建一个接口,该接口具有与在服务器端公开的接口相同的签名,并且具有相同的路径。 然后,在spring配置文件中,可以使用RESTeasy客户端API生成连接到公开Web服务的代理。

在客户端应用程序中,它将如下所示:

SimpleClient.java

@PUT
@Path("/send")
@Consumes(MediaType.APPLICATION_JSON)
public Response consumeJSON(Student student);

配置文件

@Bean
public SimpleClient getSimpleClient(){
    Client client = ClientFactory.newClient();
    WebTarget target = client.target("http://example.com/base/uri");
    ResteasyWebTarget rtarget = (ResteasyWebTarget)target;

    SimpleClient simple = rtarget.proxy(SimpleClient.class);

    return simple;
}

然后,在要调用此Web服务的地方,用Spring注入它,然后可以调用该方法。 RESTeasy将搜索与您的客户端匹配的Web服务(根据路径和请求类型),并创建一个连接。

Launcher.java

@Resource
private SimpleClient simpleClient;

public void sendMessage(Student student) {
    simpleClient.consumeJSON(student);
}

RESTesay客户端API上的文档: http ://docs.jboss.org/resteasy/docs/3.0.7.Final/userguide/html/RESTEasy_Client_Framework.html

希望这对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM