sto usando Jersey in un progetto diREST e sto bisogno di usare espressione regolare.@Path e espressioni regolari (Jersey/REST)
Scavando a questo proposito è semplice come:
@Path("/resources")
public class MyResource {
@GET
@Path("{subResources:.*}")
public String get(@PathParam("subResources") String subResources) {...}
}
Ma, facendo in questo modo, il metodo è sempre richiesta unica se mi passa 1 param, esempio:
GET : .../resources/firstSubResource
Se uso più di 1 parametro del metodo è non ricevendo la richiesta, ad esempio:
GET: .../risorse/firstSubResource/seccondSubResource/thirdSubResource
Sono in grado di utilizzare regex solo se nel mio @Path contiene una variabile o valore di testo, ad esempio:
@Path("{SubResource1}/{subResources:.*}")
O
@Path("/hardCodeString/{subResources:.*}")
Oggi ho potuto correre con questa soluzione di una variabile, ma non va bene per il mio punto di vista.
mio 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>
(...)
Domanda
- Qualcuno ha lavorato con qualcosa legato?
- Sto facendo qualcosa di sbagliato?
- Penso che questo potrebbe essere un bug, quando si lavora con più di un @Path, uno nella classe e altro nel metodo.
- Qualsiasi consiglio è apprezzato!
saluti
Potresti pubblicare ulteriori informazioni, tra cui: i tag e
@Daniel - Grazie per la tua risposta, aggiungo qualche altra informazione alla domanda. Saluti! –