The issue is that even though you declare your encoding to be enctype="application/x-www-form-urlencoded"
in the form tag, you're not actually submitting the form. Instead, you're using JQuery to collect the form data and issue an AJAX call to your endpoint with no particular encoding specified in the request header. Options:
Per edub's answer above, you can fix on the server by converting from @FormParam (for use with url-encoded data to @FormDataParam (can handle either url-encoded or multipart). A nice description of the difference is here.
You can also fix on the client by using the contentType option of $.ajax() to specify url-encoded form data, instead of using $.post(). API details here.