0

我知道这已在许多帖子中得到解答,但我无法找到正确的解决方案。

我没有在类级别提供@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

谢谢

4

1 回答 1

0

鉴于您有一个Patient资源,您通常会放置一个

@Path("/patient")

在课堂上,然后是

@Path("{patientId}")

在方法上。

于 2013-02-27T16:17:04.840 回答