Java 即使资源不应';不存在
我试图学习如何创建RESTful web服务。 我正在努力做到以下几点: 创建一个从消息列表返回消息对象(JSON格式)的方法。(已使用构造函数初始化) 它通常针对以下URI运行: 对于URI: 我得到以下回应:Java 即使资源不应';不存在,java,rest,jersey,Java,Rest,Jersey,我试图学习如何创建RESTful web服务。 我正在努力做到以下几点: 创建一个从消息列表返回消息对象(JSON格式)的方法。(已使用构造函数初始化) 它通常针对以下URI运行: 对于URI: 我得到以下回应: { "id": 1, "message": "m1" } 但是,我在arraylist中只添加了3个元素。 我做错了什么 我猜这与多次运行构造函数有关。但我不认为这会发生在任何地方 @Path("testresource") public class Messa
{
"id": 1,
"message": "m1"
}
但是,我在arraylist中只添加了3个元素。
我做错了什么
我猜这与多次运行构造函数有关。但我不认为这会发生在任何地方
@Path("testresource")
public class MessageResource {
private static List<Message> list = new ArrayList<>();
public MessageResource() {
list.add(new Message(1L,"m1"));
list.add(new Message(2L,"m2"));
list.add(new Message(3L,"m3"));
}
@GET
@Path("{messageId}")
@Produces(MediaType.APPLICATION_JSON)
public Message getSpecificMessage(@PathParam("messageId") int messageId) {
return list.get(messageId-1);
}
}
@Path(“testresource”)
公共类消息资源{
私有静态列表=新的ArrayList();
公共消息资源(){
添加(新消息(1L,“m1”);
添加(新消息(2L,“m2”);
添加(新消息(3L,“m3”);
}
@得到
@路径(“{messageId}”)
@产生(MediaType.APPLICATION_JSON)
公共消息getSpecificMessage(@PathParam(“messageId”)int-messageId){
返回列表.get(messageId-1);
}
}
列表是静态的。这意味着该类的所有实例只有一个列表实例。资源类在请求范围中是默认的,这意味着为每个请求实例化一个新的资源类。因此,每次创建一个新的时,它都会添加到相同的static
列表中
如果您希望资源类是一个单例(仅一个),那么可以使用
@singleton
对其进行注释,列表是静态的。这意味着该类的所有实例只有一个列表实例。资源类在请求范围中是默认的,这意味着为每个请求实例化一个新的资源类。因此,每次创建一个新的时,它都会添加到相同的static
列表中
如果希望资源类是单例(仅一个),则可以使用@singleton
对其进行注释