Apache-SOAP proporciona una herramienta de administraci�n para manejar servicios. Hay dos clientes para el controlador de servicios: uno HTML usado mediante un navegador y una herramienta de la l�nea de comandos.
NOTA:
Si hemos desplegado previamente servicios a una versi�n anterior de Apache-SOAP, esta nueva versi�n podr�a no reconocer dichos servicios porque las clases que fueron serializadas para representar los servicios se han cambiado desde entonces. |
�Ejecutar la Herramienta "Server Side Admin Tool" para Manejar Servicios
Con las Herramientas de Administraci�n de Apache-SOAP es posible usar un navegador Web para desplegar y eliminar servicios y para revisar la lista de definiciones de servicios desplegados en un servidor SOAP dado.
Apuntamos nuestro navegador a http://hostname:port/soap/admin (ver arriba) y veremos la pantalla de Apache-SOAP Admin con tres opciones:
- Deploy para desplegar un nuevo servicio.
- Un-deploy para eliminar un servicio desplegado.
- List muestra la listra de servicios desplegados actualmente en el servidor.
El uso de estas funciones es inmediato una vez entendida la naturaleza de la informaci�n requerida para desplegar un servicio.
�Informaci�n de Despliegue de Servicios
Aqu� revisamos la informaci�n que define un servicio desplegado. Estas informaci�n debe proporcionarse cuando usemos la funci�n Deploy, y puede ser navegada usando la funci�n List. Nos referimos a esta informaci�n como las properties del servicio.
- ID. Una URN �nica que identifica el servicio para los clientes. Debe ser �nica entre los servicios desplegados y debe estar codificada como una URI. Nosotros recomendamos usar el formato: urn:UniqueServiceID. Corresponde con la ID del objeto objetivo, en la terminolog�a de la especificaci�n SOAP.
- Scope. Define el tiempo de vida del objeto servido en la invocaci�n a request. Este corresponde con el atributo scope de la etiqueta <jsp:useBean> de las JavaServer Pages. Debe tener uno de los siguientes posibles valores:
- page: el objeto est� disponible mientras que la p�gina JSP (en este caso rpcrouter.jsp) env�e una respuesta de vuelta o la respuesta es re-enviada a otra p�gina (si estamos usando el mecanismo de despliegue est�ndard esto es lo �nico que sucede).
- request: el objeto est� disponible durante toda la duraci�n de la solciitud, sin importar el reenv�o.
- session: el objeto est� disponible durante toda la duraci�n de la sesi�n.
- application: cualquier p�gina dentro de la aplicaci�n podr�an acceder al objeto. En particular, sucesivas llamadas al servicio que pertenezcan a diferentes sesisones compartir�n el mismo ejemplar del objeto. Es importante observar que el valor de este atributo puede tener importantes implicaciones de seguridad. Los �mbitos de p�gina y solicitud a�slan las llamadas sucesivas. En el otro extremo, el �mbito de aplicaci�n implica que todos los objetos de servicio se comparten entre diferentes usuarios del servidor SOAP. Ser�a bueno crear un documento que desccriba los escenarios para los diferentes �mbitos.
- Method list Define los nombres del m�todo que pueden ser invocados sobre el objeto de servicio.
- Provider type. Indica si el servicio est� implementado usando Java, un lenguaje de script, o un proveedor definido por el usuario. Si estamos usando un proveedor definido por el usuario, tambi�n necesitaremos especificar el nombre totalmente cualificado de la clase del proveedor as� como cualquier opci�n (parejas clave/valor) que deseemos pasarle.
- For Java services, Provider class. Nombre totalmente cualificado de la clase Java del objeto destino que sirve la solicitud.
- For Java services, Use static class. Si se selecciona a Yes el m�todo de la clase se hace disponible como un m�todo est�tico, y as� no se ejemplarizar� ning�n objeto. Cuando se usa la invocaci�n est�tica, no se puede aplicar la propiedad scope.
- For script services, Script language. Indica el lenguaje de script usado para implementar el servicio.
- For script services, Script filename. Nombre del fichero que contiene el script, o
- For script services, Script. El script real a ejecutar.
- Type mappings. Para poder controlar la serializaci�n y deserializaci�n de tipos espec�ficos de Java hacia y desde XML en un estilo de codificaci�n particular, podr�a ser necesario proporcionar clases de serializaci�n y deserializaci�n que sepan como realizar correctamente las conversiones de tipos. El servidor Apache-SOAP ya incluye clases de serializaci�n para la mayor�a de los tipos b�sicos en el estilo de codificaci�n SOAP, as� como la clase de codificaci�n Bean que puede proporcionar serializaci�n gen�rica de un bean en t�rminos de propiedades. Tambi�n incluye clases serializadoras/deserializadoras XML que soportan el estilo de codificaci�n XML. Como los diferentes tipos podr�an requerir soporte adicional para una correcta serializaci�n, Apache-SOAP mantiene un registro de Serializers y Deserializers. El registro esta accesible para los administradores del servicio a trav�s de la herramienta de administraci�n Apache-SOAP. Para poder registrar una clase (de)serializer, la clase debe implementar los interfaces Serializer o Deserializer, de org.apache.soap.util.xml.Serializer o com.org.apache.soap.util.Deserializer.
- Default Mapping Registry. Nombre totalmente cualificado de la clase para un registro personalizado que maneje los serializer/deserializers por el servicio. Debe ser una subclase de org.apache.soap.encoding.SOAPMappingRegistry. En el descriptor de despliegue XML, puede ser especificado en un atributo defaultRegistryClass del elemento isd:mappings.
�Usar la Herramienta de la L�nea de Ccomandos para Manejar Servicios
La herramienta de la l�nea de comandos se ejecuta tecleado java org.apache.soap.server.ServiceManagerClient. Su ejecuci�n nos presentar�:
% java org.apache.soap.server.ServiceManagerClient Usage: java org.apache.soap.server.ServiceManagerClient [-auth username:password] url operation arguments
donde:
- username y password es la informaci�n de autentificaci�n B�sica HTTP
- url es la URL del enrutador Apache SOAP cuyos servicios est�mos manejando
- operation y arguments son:
- deploy fichero-descriptor-despliegue.xml
- list
- query nombre-servicio
- undeploy nombre-servicio
Para desplegar un servicio, por ejemplo, tecleamos:
% java org.apache.soap.server.ServiceManagerClient http://hostname:port/soap/servlet/rpcrouter deploy foo.xml
donde foo.xml es el descriptor de despliegue y la URL es la apropiada para nuestra instalaci�n.
NOTA:
Si configuramos la opci�n SOAPInterfaceEnabled a false en el fichero soap.xml, se evitar� que los usuarios manipulen los servicios mediante ServiceManagerClient. Sin embargo, todav�a podr�n hacer esto a trav�s de las p�ginas JSP de administraci�n. Para m�s informaci�n sobre c�mo controlar el ServiceManager, mira aqu� |