簡體   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