これは多くの投稿で回答されていることは理解していますが、正しい解決策を見つけることができません。
クラス レベルでは @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 を指定する必要がありますか
ありがとう