servicios restful pasar parametros para crear consumir cliente rest get null cxf jax-rs

parametros - ¿Cómo pasar el valor nulo en el servicio web RESTful para un método GET?



pasar parametros url web service (3)

La coincidencia predeterminada de una variable es [^/]+? (al menos un personaje) puede establecer manualmente la coincidencia en [^/]*? y también debe coincidir con cadenas vacías.

Simplemente agregue el formato a la variable userid:

@Path("/getProfile/{memberno}/{userid: [^/]*?}/{channelid}")

Actualmente tengo un servicio web RESTFul expuesto con CXF . El método se ve así.

@GET @Path("/getProfile/{memberno}/{userid}/{channelid}") @Consumes("application/xml") public MaintainCustomerProductResponse getUserDetails( @PathParam("memberno") String membernumber, @PathParam("userid") String userid, @PathParam("channelid") String channelid){ //DO Some Logic here. }

Se puede acceder a esto a través de la siguiente URL y al enviar datos válidos recibo una respuesta.

http://server.com:8080/UserService/getProfile/{memberno}/{userid}/{channelid}

Pregunta: ¿Cómo puedo pasar el valor nulo para userid de userid ?

Si simplemente ignoro el {userId} la solicitud no está llegando al servicio web del lado del servidor.

Ejemplo

http://server.com:8080/UserService/getProfile/1001//1

Nota: Estoy usando SOAPUi para Testing y, sin dar el valor de userId , veo la siguiente respuesta en SOAPUI y Request no llega al servidor.

Respuesta de SOAPUI

<data contentType="null" contentLength="0"><![CDATA[]]></data>


Lo resolví con un Work Around. Creé otro método que toma solo dos parámetros. Ahora, según el URL de la solicitud, se llama un método diferente


Cambie @Path("/getProfile/{memberno}/{userid}/{channelid}") @Path("/getProfile/{memberno}/{userid = default}/{channelid}") para que acepte null valores a la identificación del usuario. Puede usar plantillas URI para especificar valores predeterminados para parámetros opcionales. Consulte

http://msdn.microsoft.com/en-us/library/bb675245.aspx