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 を不必要に拡張することに注意してください。結論 - クラス レベルで @Path を指定する必要がありますか

ありがとう

4

1 に答える 1

0

Patientあなたがリソースを持っているとすれば、通常は

@Path("/patient")

クラスで

@Path("{patientId}")

メソッドについて。

于 2013-02-27T16:17:04.840 に答える