package com.java4s;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;
@Path("/customers")
public class RestServicePathParamJava4s {
@GET
@Path("{name}/{country}")
@Produces("text/html")
public Response getResultByPassingValue(
@PathParam("name") String name,
@PathParam("country") String country) {
String output = "Customer name - "+name+", Country - "+country+"";
return Response.status(200).entity(output).build();
}
}
In web.xml I have specified URL pattern as /rest/* and in RestServicePathParamJava4s.java we specified class level @Path as /customers and method level @Path as {name}/{country}
So the final URL should be
http://localhost:2013/RestPathParamAnnotationExample/rest/customers/Java4/USA
and the response should be displayed as
Customer name - Java4, Country - USA
If I give the 2 input given below it is showing an error. How to solve this?
http://localhost:2013/RestPathParamAnnotationExample/rest/customers/Java4:kum77./@.com/USA`
Here Java4:kum77./@.com this one is one string and it contains forward slash. how to accept this by using @PathParam or whatever I need to use MultivaluedMap. If somebody knows this plz help me. if anyone knows what is MultivaluedMap, give me a simple example?
You'll need to use a regex for for the name path expression
@Path("{name: .*}/{country}")
This will allow anything to be in the name template, and the last segment will be the country.
Test
@Path("path")
public class PathParamResource {
@GET
@Path("{name: .*}/{country}")
@Produces("text/html")
public Response getResultByPassingValue(@PathParam("name") String name,
@PathParam("country") String country) {
String output = "Customer name - " + name + ", Country - " + country + "";
return Response.status(200).entity(output).build();
}
}
$ curl http://localhost:8080/api/path/Java4:kum77./@.com/USACustomer name - Java4:kum77./@.com, Country - USA
$ curl http://localhost:8080/api/path/Java4/USACustomer name - Java4, Country - USA
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With