I have a service defined as follows.
public String getData(@QueryParam("date") Date date)
I'm trying to pass a java.util.Date
to it from my client (which is jaxrs:client of CXF, not a generic HTTP client or browser).
My service receives the date as Thu Mar 01 22:33:10 IST 2012
in the HTTP URL. Since CXF won't be able to create a Date
object using this String, my client receives a 404 error.
I tried using a ParameterHandler
on the service side, but I still can't parse it successfully because I'm not expecting the date in any specific format.
As per this post, passing a Date
is supposed to work out of the box, but I can't seem to get the basic case working. Am I required to do anything in order to successfully pass a Date object from my client to service? Appreciate any help.
Thanks
The problem is that JAX-RS dictates that parameter unbundling be done in one of two ways:
valueOf(String)
method.In your case, the Date is being unbundled via its Date(String)
constructor, which cannot handle the input format your client is sending. You have a couple options available to remedy this:
Option 1
Get your client to change the format of the date before they send it. This is the ideal, but probably the hardest to accomplish!
Option 2