Disons que j'ai l'entrée suivante dans mes Grails URLMappings.groovy:Pourquoi Grails URL params décodage se comportent différemment sur le serveur vs locale
"/actionName/param1"(controller:'myController', action:'myAction')
Quand j'appelle une URL où param1
comprend +
comme un caractère spécial , l'URL est codée correctement à /actionName/my%2Bparam
par exemple, à la fois dans mon environnement local et dans mon serveur.
Dans mon environnement local - en utilisant également "prod" comme paramètre d'environnement - ceci est correctement résolu en my+param
dans le contrôleur. Cependant dans mon "vrai" environnement de production (instance Amazon Web Service EC2), l'URL est résolue en "mon param" ce qui est faux.
Je n'ai aucune idée de ce que la raison pour cela pourrait être. Les deux environnements utilisent TomCat, et comme indiqué ci-dessus, j'utilise même les paramètres d'environnement prod dans mon environnement local, donc il ne peut y avoir de configuration différente entre le développement et la production.
Est-ce que quelqu'un a une idée où je pourrais creuser plus profondément pour identifier le problème?
Désolé, mais c'est pas. La résolution attendue est "my + param" car le code URL est% 2B (pas% 20 ou +). Et j'utilise 1.3.5 qui est également déployé sur le serveur. Donc localement, c'est résolu correctement, et c'est faux sur Amazon. –
Désolé, j'aurais mal interprété "% 2B" comme "% 20". - Pour info, votre symptôme de "% 2B" n'étant pas correctement décodé en "+" a également été un bug en 1.3.4, et corrigé en 1.3.5 (selon mes propres tests). - Vous pouvez utiliser * assert "1.3.5" == grailsApplication.properties.metadata.'app.grails.version '* dans votre contrôleur pour vous assurer que 1.3.5 est utilisé. – robbbert
Merci pour votre commentaire. Cependant, si j'ai raison, lors de la construction d'un fichier war, le contenu est toujours la version Grails utilisée localement. Puisque je suis sûr que j'utilise 1.3.5 localement et que je déploie ce fichier war sur le serveur Amazon, il doit aussi être 1.3.5. –