Red de conocimiento informático - Material del sitio web - Cómo implementar Java Business Services habilitados para REST

Cómo implementar Java Business Services habilitados para REST

La siguiente figura muestra las clases en la implementación de ejemplo. Las clases que se muestran en azul son clases fuera del marco. Se colocan aquí para mostrar la relación estructural con el marco.

Archivo de configuración

El archivo de configuración "rest-services-config.xml" contiene el mapeo entre la representación del servicio REST y la acción Java correspondiente, de la siguiente manera:

Listado 1. Configuración del servicio REST

El siguiente es un fragmento de referencia:

?

? ?

?? ? ?

?< handler id="RegAction" class=" ws.registration.restactions.GetProfile"/> ?

...?

>

En esta implementación de ejemplo, el archivo de configuración del marco configurado en el archivo "rl-config.xml" para la implementación del servicio de enlace XML es el siguiente. Se puede acceder a cualquier implementación personalizada implementada modificando este archivo, siempre que esté implementada la interfaz XMLBindingService. ?

Listado 2: Configuración del marco

El siguiente es un fragmento de referencia:

# ¿Servicio de implementación de enlace XML?

# Implementación predeterminada ?

ws.rest.xmlbinding.service.impl=ws.rest.xmlbinding.service.impl.XMLEncDecServiceImpl?

El archivo de configuración de registro "ws_log.properties" especifica las propiedades de log4j y ubicación de los archivos de registro. Esto se puede modificar adecuadamente según sea necesario.

Servlet controlador

RESTServiceServlet está configurado en web.xml para manejar todas las solicitudes con una ruta de contexto, donde la ruta de contexto de /restservices/* es la siguiente:

Listado 3: Configuración de servlet

El siguiente es un fragmento de referencia:

?

?

RESTServletService?

RESTServletService?

< clase-servlet >ws.rest.servlet.RESTServiceServlet? ? ?

RESTServletService?

/restservices/*? ?

Acción REST

Para cada recurso REST, como GetUserProfile, creará una clase de acción correspondiente que implementa ActionInterface. Esta interfaz define el método "doExecute(ActionContext ctx)" que la clase de acción necesita implementar. ActionContext proporciona servicios, obtiene entradas de ruta REST o parámetros de consulta, obtiene instancias de XMLBindingService y envía resultados XML al cliente, sin exponer los detalles del protocolo de la Acción. PathInputs es un objeto de lista que contiene valores de ruta en el mismo orden en que se especifican en la URL.

Listado 4: Fragmento de código de acción

El siguiente es un fragmento de referencia:

la clase pública GetProfile implementa ActionInterface {? public void doExecute(ActionContext context) lanza una excepción. {?

// ¿Obtener el valor de la ruta URL?

String userName = context.getPathInputs().get(0);?

// Invocar ¿Servicio backend para recuperar el perfil de usuario?

UserProfileBean bean = getUser(userName);?

// Serializar el bean usando servicio framework y enviar respuesta?

String xml = context.getXMLBindingService().serialize(bean);?

// Usar ActionContext para generar XML y ?

context.sendResponse(response, xml);?

}?

La clase de acción es responsable de generar resultados en formato XML utilizando XMLBindingService en la superclase. Consulte la implementación de muestra de la clase ws.registration.restactions.GetProfile. ActionContext también puede proporcionar objetos HttpServletRequest y HttpServletResponse específicos del protocolo en caso de que se requiera un manejo personalizado. También proporciona valores de ruta y parámetros de URL.

Enlace XML

Este código de ejemplo proporciona una implementación de enlace XML de Java utilizando las clases java.beans.XMLEncoder y java.beans.XMLDecoder. La implementación del servicio XML Binding acepta un objeto JavaBean y lo convierte en la representación XML correspondiente del codificador y decodificador anteriores. Si necesita una implementación JAXB, puede desarrollar una clase de implementación que implemente la interfaz ws.rest.xmlbinding.service.XMLBindingService.

Ejecutar el servicio de muestra

La distribución del código de muestra contiene el archivo WAR de muestra "RESTWS.war", que se puede implementar en un contenedor Tomcat (probado en Apache Tomcat versión 6.0.20). ). El requisito de JDK es JDK 1.5 o superior.

Después de implementar correctamente la aplicación, ingrese la URL en el navegador:

Figura 5. Entrada del servicio Crear perfil

Esta página llama al servicio REST

POST /Registration/CreateProfile

Puede modificar el valor XML especificado en la etiqueta .

Nota: tenga en cuenta que la estructura XML se basa en objetos JavaBean y la tecnología de serialización XML utilizada por Java.

Cuando se envía, la clase de acción muestra un mensaje de éxito, indicando la llamada al servicio backend. Puede ver el archivo ws_log.log para ver mensajes de depuración.

Figura 6. Crear salida del servicio de perfiles

De manera similar, implemente el servicio de ejemplo GET /Registration/GetProfile/{username} para recuperar el perfil, como se muestra en la siguiente figura:

Reimpreso solo como referencia, los derechos de autor pertenecen al autor original. Te deseo una vida feliz, acéptala si estás satisfecho