【发布时间】:2015-12-22 13:10:22
【问题描述】:
我是 web 服务和 REST 的新手。我正在尝试使用 rest java 客户端将消息作为发布请求发送到休息服务。我也在尝试获取先前请求的响应(所有内容均为 json 格式)。因此,我将消息对象存储到一个数组列表中并将该列表作为响应发送。但我无法收到以前的消息。请告诉我是否做错了什么。 这是我的消息模型类。
public class Messages {
private String id;
private String message;
public Messages() {
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
以下是我接收消息对象并返回json数组的webservice。
@Path("/json/messages")
public class JSONMessages {
public List<Messages> list = new ArrayList<Messages>();
List<Messages> getAllMessages(Messages m){
list.add(m);
return list;
}
@POST
@Path("/post")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response MessageListInJSON(Messages msg) {
System.out.println("message saved");
if(!(msg.getId().equals("1"))){
String output ="Invalid User";
return Response.ok(output).build();
}
else{
return Response.ok(getAllMessages(msg)).build();
}
}
}
最后,下面是我的客户端代码
public class ClientPost {
public static void main(String[] args) {
try {
ClientConfig clientConfig = new DefaultClientConfig();
Client client = Client.create(clientConfig);
WebResource webResource = client
.resource("http://localhost:8050/lab.rest.webservices/rest/json/messages/post");
//for(int i=0;i<5;i++){
String input = "{\"id\":\"1\", \"message\":\"hey there!\"}";
ClientResponse response = webResource.accept("application/json").type("application/json")
.entity(input).post(ClientResponse.class);
if (response.getStatus() !=200 ) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatus());
}
System.out.println("Output from Server .... \n");
String output = response.getEntity(String.class);
System.out.println(output+"\n");
}
catch (Exception e) {
e.printStackTrace();
}
} }
现在,我期望看到的是我发送的消息以及存储在数组列表中的先前响应(暂时通过手动运行客户端多次发送)但总是以仅当前消息结束.
输出:
来自服务器的输出 ....
[{"id":"1","message":"hey there!"}]
确切地说,当我多次运行我的客户端(或将 try 块置于循环中)时,我想要的输出如下,我无法得到。
来自服务器的输出 ....
[{"id":"1","message":"hey there!"},{"id":"1","message":"hey there!"},{"id":"1","message":"hey there!"},{"id":"1","message":"hey there!"}] .
【问题讨论】: