2017-05-15 7 views
2

j'ai un point final comme:Comment permettre des barres obliques dans le chemin param dans JAX-RS endpoint

@Path("/products") 

    @Produces({ MediaType.APPLICATION_JSON }) 
    public interface Products { 

     @PUT 
     @Path("/{productId}") 
     .... 
    } 

J'ai un client JAX-RS mis en œuvre pour ce service et l'avoir importé dans l'autre service que je suis appeler cela.

Je fais appel au client comme ci-dessous de mon deuxième service

public String updateProduct(String productId){ 
.. 
    return client.target(this.getBaseUrl()).path("products/").path(productId).request(MediaType.APPLICATION_JSON_TYPE).put(Entity.json(""), String.class); 
} 

Si j'ai un produit avec des barres obliques dire « contrôle/registre app », le service ne semble pas prendre bien. J'ai encodé le productId avant de passer un appel au service, puis je l'ai décodé une fois reçu. Mais cela ne semble pas fonctionner et je reçois un 404 pas trouvé. Des idées? Merci d'avance

+0

Copie possible de [@PathVariable dans SpringBoot avec des barres obliques dans l'URL] (http://stackoverflow.com/questions/43470421/pathvariable-in-springboot-with-slashes-in-url) –

+1

@PJMeisch Ce n'est pas un dupliquer la question ci-dessus, une fois que l'OP utilise JAX-RS au lieu de Spring MVC pour l'API REST. –

Répondre

3

L'utilisation de @Path("{productId : .+}") devrait fonctionner.

+0

Merci, ça m'a aidé! –

+0

Fait, mais ma réputation n'est pas suffisante pour l'afficher :) –