自从我刚开始使用JAX-RS以来,我有一个问题并且无法弄清楚。我们可以用方法而不是类来指定路径。我试图运行它,但它不起作用。
@Path("/images")
@Component
@Transactional
public class ImageResource {
@GET
public List<Image> getAll(){
return this.imageDao.findAll();
}
}
是否有可能有这样的事情:
@Component
@Transactional
public class ImageResource {
@GET
@Path("/images")
public List<Image> getAll(){
return this.imageDao.findAll();
}
}
答案 0 :(得分:4)
来自@path文档:
标识资源类或类方法将使用的URI路径 服务请求。
https://docs.oracle.com/javaee/7/api/javax/ws/rs/Path.html
所以你可以注释类和方法,但是你不能跳过类注释。我建议你使用:
@Path("/")
@Component
@Transactional
public class ImageResource {
@GET
@Path("/images")
public List<Image> getAll(){
return this.imageDao.findAll();
}
}
对你来说,你似乎很奇怪:
1)在控制器类上有@Transactional注释。我相信它应该放在imageDao上。此外,请确保所有方法都需要交易。如果不是 - 仅将此注释放在所需的方法上。
2)您的控制器类被称为&#34; ImageResource&#34;。最好将这些类称为* Controller。在您的情况下ImageController。