我想做这样的事情:
@Stateless
@Path("/sensors/{sensorid}/version")
@Consumes({MediaType.APPLICATION_XML, MediaType.TEXT_XML})
@Produces({MediaType.APPLICATION_XML, MediaType.TEXT_XML})
public class SensorVersionRestView extends VersionRestView{
@PathParam("sensorid")
private String sensorid;
@GET
@Path("count")
// so the complete path is i.e.
// domain.com/rs/sensors/111211/version/count
public void getCount() {
// do something with the sensorId....
}
}
但是我唯一得到的是运行时的
null
(我将Glassfish v3与Jersey一起使用)。编译器和eclipse从未在成员类变量中提到@PathParam
的问题。我的构造有什么问题?
主要问题是,为什么我不想在此类中的每个方法上使用整个路径,所以存在另一个类来处理传感器层上的某些其余操作(即deomain.com/rs/sensors/count)。
最佳答案
我相信您需要将其更改为:
@Stateless
@Path("/sensors/{sensorid}/version")
public class SensorVersionRestView extends VersionRestView {
@GET
@Path("count")
@Consumes({MediaType.APPLICATION_XML, MediaType.TEXT_XML})
@Produces({MediaType.APPLICATION_XML, MediaType.TEXT_XML})
// domain.com/rs/sensors/111211/version/count
public void getCount(@PathParam("sensorid") String sensorid) {
// do something with the sensorId....
}
}
关于rest - JAX-RS @PathParam注入(inject)类成员变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4991860/