21
Estoy tratando de recuperar algunos parámetros que se pasan a jax-rs desde un formulario publicado con la HttpServletRequest. Sin embargo, mi objeto de solicitud siempre devuelve valores nulos para mis parámetros. ¿No estoy haciendo esto de la manera correcta? He publicado el código a continuación, junto con un ejemplo de solicitud que se envía.jax-rs recuperar los parámetros del formulario
Aquí es mi servicio:
@Path("/")
@Stateless
public class HomeController {
@Context
private HttpServletRequest request;
@Context
private HttpServletResponse response;
@EJB
private LoginServiceLocal loginService;
@POST
@Path("/authenticate")
@Consumes("application/x-www-form-urlencoded")
public void authenticate() throws Exception {
String email = request.getParameter("email");
String password = request.getParameter("password");
if (loginService.authenticate(email, password)) {
response.sendRedirect("/app");
} else {
request.setAttribute("authenticationError", "Invalid email/password.");
}
}
}
pedido Ejemplo:
POST http://localhost:8081/cheetah-web/authenticate HTTP/1.1
Host: localhost:8081
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.12) Gecko/20101026 Firefox/3.6.12
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 115
Connection: keep-alive
Referer: http://localhost:8081/cheetah-web/login
Cookie: JSESSIONID=a4e7aec0624206ad33754e35cce4
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
email=unit%40test.com&password=testpass
Cómo recuperar todos los parametros de forma a la vez que podemos hacer por consulta params usando UriInfo.getQueryParameters() –
Utilizaría un MultivaluedMap como parámetro. Por ejemplo, public void authenticate (MultivaluedMap form) {...} –