Programación en castellano
Inicio > Tutoriales > Servidores de Aplicaciones Java > El API Apache SOAP v2.2
-Tutoriales

El API Apache SOAP v2.2


Configurar el Servidor Apache SOAP

La información de configuración podría pasarse al servidor Apache SOAP mediante un fichero de configuración basado en XML. Por defecto, el servidor buscará en el directorio de trabajo actual un fichero llamado soap.xml. Si se ha utilizado un fichero diferente, el path por defecto y el nombre del fichero pueden ser sobreescritos especificando un parámetro que el oyente de transport (por ejemplo, RPCRouterServlet) le pasa al servidor SOAP durante la arrancada. (Todos los oyentes de transport deberían llamar al método estático setConfigFileName(...) de org.apache.soap.server.ServiceManager antes de llamar al servidor SOAP).

Para oyentes de transporte HTTP, esta opción puede seleccionarse en el fichero de configuración para el servlet rpcrouter añadiendo un parámetro de inicialización llamado ConfigFile al fichero de propiedades de despligue del servelt. Aquí podemos ver un ejemplo de propiedades de despliegue de un servlet con esta modificación:

      <servlet>
        <servlet-name>rpcrouter</servlet-name>
        <display-name>Apache-SOAP RPC Router</display-name>
        <description>no description</description>
        <servlet-class>
            org.apache.soap.server.http.RPCRouterServlet
        </servlet-class>
        <init-param>
          <param-name>faultListener</param-name>
          <param-value>org.apache.soap.server.DOMFaultListener</param-value>
        </init-param>
        <init-param>
          <param-name>ConfigFile</param-name>
          <param-value>config-file</param-value>
        </init-param>
      </servlet>

donde config-file es el path (totalmente cualificado o relativo) y el nombre de fichero del fichero de configuración de SOAP.

Actualmente hay dos selecciones disponibles en el fichero de configuración del servidor SOAP: información sobre el Controlador del Servicio e información sobre el controlador de configuración conectable. Abajo podemos ver un ejemplo de un fichero de configuración de un servidor SOAP que selecciona información sobre el Controlador de Servicio y del Controlador de Configuración:

      <!-- Sample Apache SOAP Server Configuration File -->
      <soapServer>
        <!-- This section defines the same thing you get if you don't -->
        <!-- specify anything at all - aka the default                -->
        <serviceManager>
          <option name="SOAPInterfaceEnabled" value="boolean-value" />
        </serviceManager>
        <configManager value="config-manager" >
          [<option name="option-name" value="option-value"/>]*
        </configManager>
      </soapServer>

donde boolean-value es true o false, dependiendo de si queremos activar o no el Interface SOAP para el Controlador de Servicio, y config-manager es el nombre totalmente cualificado de la clase del controlador de configuración usado por el servidor SOAP. Se podría pasar información adicional el controlador de configuración a través del uso de elementos <option>, con option-name y option-value actuando como parejas clave/valor.

. Controlar el Acceso al Controlador de Servicio

Aunque el interface SOAP para desplegar/eliminar servicios puede ser muy útil durante el despliegue, no es siempre deseable exponer dichas capacidades en un entorno de ejecución. Apache SOAP proporciona la habilidad de activar/desactivar el interface SOAP hacia el ServiceManager seleccionado una bandera booleana en el fichero de configuración. Si la bandera se selecciona a true, o si no está presente, el interface SOAP está activo. Si se selecciona a false, entonces el interface ServiceManagerClient, así como cualquier otro interface que use este interface, no podrán comunicar con el ServiceManager. Sin embargo, algo que comunique directamente con el ServiceManager, como las páginas JSP de administración, podrán modificar el estado del ServiceManager.

. Controlador de Configuración Conectable

El controlador de configuración SOAP es el responsale de grabar la lista de servicios desplegados actualmente en un almacenamiento persistente, por eso cuando se para o se reinicia el servidor SOAP, los servicios no tienen que ser redesplegados.

Si no se especifica ningún controlador de configuración en el fichero de configuración del servidor, o si no se puede cargar el controlador de configuración especificado, se usará org.apache.soap.server.DefaultConfigManager. Este graba la lista de servicios desplegados en un fichero llamado DeployedServices.ds en el directorio de trabajo actual (o en el fichero especificado por el elemento <option> del fichero de configuración del servidor), cada vez que se despliegue o se elimine un servicio. En la inicialización, el DefaultConfigManager intentará leer este fichero y restaurar su información de estado.

Si queremos sobreeescribir el path y/o el nombre de fichero del fichero de almacenamiento de servicios desplegados para DefaultConfigManager, nuestro fichero de configuración SOAP se debería parecer a éste:

 <!-- Apache SOAP Server Configuration File -->
 <soapServer>
   <configManager value="org.apache.soap.server.DefaultConfigManager">
     <option name="filename" value="config-file"/>
   </configManager>
 </soapServer>

donde config-file es el path (totalmente cualificado o relativo) y el nombre de fichero del fichero de almacenamiento de servicios desplegdos.

. Crear un Controlador de Configuración

Si encontramos que DefaultConfigurationManager no cubre nuestras necesidades, deberíamos crear uno propio y usarlo en su lugar. Todos los controladores de configuración deben implementar el interface org.apache.soap.util.ConfigManager, que tiene esta forma:

public interface ConfigManager
{
  public void      setContext(ServletContext context);
  public void      setOptions( Hashtable options ) throws SOAPException ;
  public void      init() throws SOAPException ;
  public void      deploy( DeploymentDescriptor dd ) throws SOAPException ;
  public String[]  list() throws SOAPException ;

  public DeploymentDescriptor undeploy( String id ) throws SOAPException ;
  public DeploymentDescriptor query(String id) throws SOAPException ;
}

Los métodos:

  • void setOptions(Hashtable options) throws SOAPException

    Este método será llamado con una Hashtable de parejas nombre/valor que fueron especificadas mediante elementos <option> en el fichero de configuración. En el caso de que se produzca un error se lanzará una SOAPException.

  • void init() throws SOAPException

    Este método será llamado después de que se cree el objeto ConfigManager, permitiendo que se haga cualquier inicialización. Por ejemplo, leer el fichero DeployedServices.ds. En el caso de que se produzca un error se lanzará una SOAPException.

  • void deploy(DeploymentDescriptor dd) throws SOAPException

    Este método será llamado cuando un servicio sea desplegado (o redesplegado). El servicio debería ser añadido a la estructura de datos interna que sea utilizada para almacenar la lista de servicios y la lista debería hacerse persitente para que si se para el servidor la lista pueda ser recargada en la arrancada. En el caso de que se produzca un error se lanzará una SOAPException.

  • String[] list() throws SOAPException

    Este método debería devolver un array de objetos String, uno por cada servicio desplegado. En el caso de que se produzca un error se lanzará una SOAPException.

  • DeploymentDescriptor undeploy(String id) throws SOAPException

    Este método debería ser llamado cuando se elimina un servicio. El servicio deberia ser eliminado de la estructura de datos interna que sea utilizada para almcenar la lista de servicios y la lista debería hacerse persitente para que si se para el servidor la lista pueda ser recargada en la arrancada. En el caso de que se produzca un error se lanzará una SOAPException.

  • DeploymentDescriptor query(String id)throws SOAPException

    Este método debería devolver un objeto DeploymentDescriptor representando los metadatos sobre el servicio. En el caso de que se produzca un error se lanzará una SOAPException.

 
Patrocinados
 

Copyright © 1999-2007 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network

red internet: musica mp3 | logos y melodias | hospedaje web linux | registro de dominios | servidores dedicados
más internet: comprar | recursos gratis | posicionamiento en buscadores | tienda virtual | gifs animados