我知道很多帖子已经回答了这个问题,但我无法找到正确的解决方案。
我没有在类级别提供@Path,但是在方法级别(因为它扩展了我的URI),由于这个原因,我得到的ResourceConfig实例不包含任何根资源类。部署中的例外
public class PatientResource {
@GET
@Path("/patient/{patientId}")
@Produces(MediaType.APPLICATION_JSON)
public Patient getPatientDetails(@PathParam("patientId") String patientId) {
...
}
Web xml条目
<servlet>
<servlet-name>jersey-serlvet</servlet-name>
<servlet-class>com.sun.jersey.spi.spring.container.servlet.SpringServlet</servlet-class>
<init-param>
<param-name>com.sun.jersey.config.property.packages</param-name>
<param-value>com.clinic.resources</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>jersey-serlvet</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<servlet-mapping>
所以当我尝试使用serv-name:8080 / WAR-Id / rest / patient / 1时,我得到了异常。请注意,如果我在类级别添加@Path,我可以摆脱异常,但它不必要地扩展了URL,而且在web xml中给出/ *对项目来说是不可行的。底线 - 是否有必要在班级提供@Path
由于
答案 0 :(得分:0)
鉴于您拥有Patient
资源,通常会放置
@Path("/patient")
在课堂上然后是
@Path("{patientId}")
关于方法。