RESTプロジェクトでJerseyを使用しており、正規表現を使用する必要があります。
それについて掘り下げるのは簡単です:
@Path("/resources")
public class MyResource {
@GET
@Path("{subResources:.*}")
public String get(@PathParam("subResources") String subResources) {...}
}
しかし、このようにすると、メソッドは1 つのパラメーターを渡した場合にのみリクエストを取得します。例:
GET: .../resources/firstSubResource
複数のパラメーターを使用すると、メソッドはリクエストを取得しません。例:
GET: .../resources/firstSubResource/seccondSubResource/thirdSubResource
@Path に変数またはテキスト値が含まれている場合にのみ、正規表現を使用できます。例:
@Path("{SubResource1}/{subResources:.*}")
または
@Path("/hardCodeString/{subResources:.*}")
今日、私はこの変数の解決策を実行できましたが、私の観点では問題ありません。
私の web.xml
(...)
<servlet>
<servlet-name>Jersey Spring Web Application</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.myproject.rest</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Spring Web Application</servlet-name>
<url-pattern>/1.0/*</url-pattern>
</servlet-mapping>
(...)
質問
- 誰かが何かに関連して働いたことがありますか?
- 私は何か間違ったことをしていますか?
- これは、1 つ以上の @Path、1 つがクラス内、もう 1 つがメソッド内で作業している場合、バグである可能性があると思います。
- どんなヒントでも大歓迎です!
よろしく