Jersey matches regex pattern before the method type -


is possible define 2 methods in jersey same regex different type? (get, put ..):

@get @path("{key: .+}") @produces(mediatype.text_plain) public response root(string key) { }  @put @path("{key: .+}") @consumes(mediatype.multipart_form_data) @produces(mediatype.text_plain) public response publish(string key, formdatamultipart data) { } 

the first method should reply key (with or without slashes)

curl -x "http://localhost/key jersey respond 200 ok since went method  curl -x "http://localhost/key/ jersey respond 200 ok since went method  curl -x put -t file.txt "http://localhost/key jersey respond 200 ok since went put method  curl -x put -t file.txt "http://localhost/key/ jersey respond 200 ok since went put method  curl -x put -t file.txt "http://localhost/key/folder/folder jersey respond 405 method not found since went method instead of put (the respond 1 folder level 'key' expected jersey go directly put since suppose check method type before regex matching 

why last 1 doesn't work? seems jersey first looks regex though it's put request.

you "jersey respond 405 method not found since went method instead of put" 405 means didn't go method. try changing put method to:

@put @path("{key: .+}") @produces(mediatype.text_plain) public response publish(string key) { } 

and should work. need ensure provide correct data part of curl request ensure matches @consumes annotation when put in request.


Comments

Popular posts from this blog

image - ClassNotFoundException when add a prebuilt apk into system.img in android -

I need to import mysql 5.1 to 5.5? -

Java, Hibernate, MySQL - store UTC date-time -