Java JAX-RS是否将实例注册为端点?
我有一个与此类似的rest端点类:Java JAX-RS是否将实例注册为端点?,java,rest,jersey,jax-rs,jersey-1.0,Java,Rest,Jersey,Jax Rs,Jersey 1.0,我有一个与此类似的rest端点类: @Path("/users") public class Users { private final Database database; public Users(Database database) { this.database = database; } @GET @Path("/{id}") public Response Get(@PathP
@Path("/users")
public class Users {
private final Database database;
public Users(Database database) {
this.database = database;
}
@GET
@Path("/{id}")
public Response Get(@PathParam("id") int id) {
User user = this.database.get(id);
return Response.ok(user).build();
}
}
主要方法是:
public class Main {
public static void main(String[] args) {
Database database = new SomeDBImplementation();
Users users = new Users(database);
HttpServer server = HttpServerFactory.create("http://localhost:8080");
server.start();
}
}
如何使服务器将users实例用作端点?我正在使用jersey server您需要创建一个实例,然后将其传递给该方法。ResourceConfig
有不同的实现。最基本的一个是。要注册资源实例,只需执行以下操作
ResourceConfig=newdefaultresourceconfig();
config.getRootResourceSingleton().add(用户);
HttpServer server=HttpServerFactory.create(uri,config);
这很有意义,尽管我得到的是“ResourceConfig实例不包含任何根资源类”。一旦我找到一个解决方案,我会把它设置为一个答案,就像它是一个不可修改的集合一样。显然jersey server有不同的版本,显然我也需要使用jetty之类的东西,整个事情都是一团糟。我唯一的猜测是getexplicitrotresources().put(“users”,users)
。如果您发布所有依赖项,可能会有所帮助。也许还有其他事情阻碍了注册。我放弃lol…如果你正在开始一个新项目(或只是学习),我建议使用Jersey 2.x甚至3.x。