Facultatif @PathParam de Jax-RS
J'ai un service où la dernière partie du chemin est en option, l'utilisateur peut à la fois entrer /mypath/ et /mypath/param1/.
J'ai essayé d'utiliser une expression régulière pour filtrer la dernière partie de la trajectoire:
@Path("/mypath{param1: (/param1)?}")
Je suis en utilisant RestEasy que mon JAX-RS fournisseur et le code fonctionne comme prévu dans Tomcat mais quand je le déployer dans JBoss-je obtenir une 405 code de retour quand je ne soumettez pas la partie facultative.
Je fais quelque chose de mal là ou il n'est pas possible de faire cela de façon portable?
Vous devez vous connecter pour publier un commentaire.
Le problème était le manque d'espace avant le deux-points:
devrait être:
Apparemment c'est un bug, parce que le spécification rend les espaces autour du côlon en option. J'ai aussi constaté que je ne suis pas la première mordu par ce bug.
Dans mon cas, j'ai eu à utiliser cette autre expression:
@Path('/mypath/{param1 : (\\w+)?}')
Sinon, vous n'avez qu'à nettoyer le paramètre.
Vérifier s'il existe un chemin déjà définie avec /mypath qui accepte une méthode différente, cela pourrait être la raison pourquoi vous obtenez 405 (Méthode non autorisée) de retour. Aussi quand vous avez des paramètres optionnels, je suppose que c'est mieux pour rendre les paramètres de la requête.
Avec Dropwizard 1.0 et Java8 vous pouvez utiliser l'Option
Il permettra de donner une réponse à la fois
et
@Path
pas@QueryParam