Adición de parámetros a servicios Web

Puede añadir parámetros a servicios Web que establezcan propiedades opcionales en una base de datos soportada en la que un servicio Web realiza operaciones y propiedades opcionales de las conexiones entre el servicio Web y la base de datos. Puede añadir estos parámetros por omisión a los servicios Web que se crean dentro de un proyecto de desarrollo de datos o puede añadirlos al desplegar servicios Web individuales.

Puede pasar información de control o auditoría adicional a servicios Web especificando parámetros de servicio Web adicionales y, a continuación, pasando valores para dichos parámetros. Los parámetros se especifican en la tabla Parámetros que aparece en la página Servicios Web de la ventana Propiedades para el proyecto y en el asistente para Desplegar servicio Web.

Puede pasar valores a los parámetros adicionales utilizando dos métodos diferentes:
  • Especificar los valores directamente en la tabla Parámetros
  • Especificar los valores en las cabeceras de mensaje SOAP, si las aplicaciones cliente enviarán mensajes SOAP/HTTP a los servicios Web

Los valores pasados sólo se aplican a la operación que el mensaje solicita. No abarcan más de un mensaje u operación.

Procedimiento:

  1. Decida cuáles son los parámetros que desea añadir y los valores que desea establecer para ellos.
    Parámetros para pasar información de auditoría de cliente de base de datos DB2
    • connection.jcc.clientAccountingInformation
    • connection.jcc.clientUser
    • connection.jcc.clientProgramName
    • connection.jcc.clientWorkstation

    Para obtener descripciones de estos parámetros, vea los enlaces en la sección Información relacionada en la parte inferior de este tema. Cuando siga un enlace, busque el parámetro en la tercera parte de su nombre. Por ejemplo, si el parámetro es connection.jcc.clientUser, busque el parámetro en clientUser.

    Parámetros para pasar información de conexión
    connection.stmt.maxRows
    Especifica el número máximo de filas que deben devolverse para un conjunto de resultados.
    connection.stmt.queryTimeout
    Especifica el número de segundos que el controlador JDBC esperará para que la sentencia se ejecute en la base de datos. Si la sentencia no se ejecuta dentro de este período de tiempo, la conexión se cierra.
  2. Si utiliza un servidor Web de Apache Tomcat, la definición de recurso establece el parámetro accessToUnderlyingConnectionAllowed en true. Por ejemplo, si utiliza la base de datos de ejemplo que se proporciona con DB2 para Linux, UNIX y Windows, la definición de recurso sería similar a la siguiente. El parámetro accessToUnderlyingConnectionAllowed aparece resaltado en negrita.
    <Resource driverClassName="com.ibm.db2.jcc.DB2Driver" 
    maxActive="4" 
    maxIdle="2" 
    maxWait="5000" 
    name="jdbc/sample" 
    password="password" 
    type="javax.sql.DataSource" 
    url="jdbc:db2://localhost:50000/sample" 
    username="userID" 
    validationQuery="select * from employee" 
    accessToUnderlyingConnectionAllowed="true"/>
  3. Abra la ventana Propiedades para el proyecto de desarrollo de datos o el asistente para Desplegar servicio Web.
    • Si desea añadir los nuevos parámetros a cada servicio Web del proyecto de desarrollo de datos, pulse el botón derecho del ratón en la carpeta de proyecto y seleccione Propiedades. En la ventana Propiedades, seleccione Servicios Web.
    • Si desea añadir los nuevos parámetros únicamente a un servicio Web que está desplegando, realice los pasos siguientes en el asistente para Desplegar.
  4. En la tabla Parámetros, pulse en Nuevo para cada parámetro que desee añadir. Aparecerá una nueva línea editable en la tabla cada vez que realice esta acción.
  5. Escriba el nombre del parámetro den la columna Nombre de la nueva línea editable.
  6. Para cada parámetro, siga estos pasos:
    1. En la tabla Parámetros, pulse en Nuevo. Aparecerá una nueva línea editable en la tabla.
    2. Escriba el nombre del parámetro en la columna Nombre de la línea editable.
    3. Si desea que el valor del parámetro se utilice cada vez que un servicio Web realiza una operación en la base de datos, escriba el valor del parámetro en la columna Valor. Si el parámetro empieza con el prefijo service, debe especificar el valor.
    4. Si desea proporcionar el valor en la cabecera de los mensajes SOAP, deje la columna Valor en blanco.

Ejemplo

Supongamos que desea establecer la propiedad de conexión de base de datos clientUser para todos los servicios Web del proyecto de desarrollo de datos. Pulse el botón derecho del ratón en la carpeta Servicios Web y seleccione Propiedades. En la tabla Parámetros, pulse en Nuevo para añadir una fila a la tabla. En la columna Nombre de la nueva fila, escriba connection.jcc.clientUser.

Tabla Parámetros del asistente para Desplegar servicio Web y página Propiedades para la carpeta Servicios Web.
Existen dos formas de proporcionar el valor para este parámetro:
  • Especifique el valor en la columna Valor de la nueva fila. Los servicios Web aplicarán el parámetro y su valor a todas las conexiones de base de datos, sin excepción.
    Especificación del valor del parámetro en la columna Valor de la tabla Parámetros.
  • Especifique el valor en la cabecera de los mensajes SOAP/HTTP que las aplicaciones cliente envían a los servicios Web. En este caso, el valor es opcional. No se producen errores si un mensaje no proporciona el valor en una cabecera SOAP.

    Ejemplo para código generado por Apache Axis2 utilizando cabecera SOAP

    package myClientTest;
    
    import example.WebService2Stub;
    
    public class getEmployee {
    
       public static void main(String args[]) {
          try {
             // crear el apéndice
             WebService2Stub stub = new WebService2Stub("http://localhost:8000/WebService2/services/WebService2");
             // crear el elemento de solicitud para el cuerpo SOAP
             WebService2Stub.GetEmployee empRequest = new  WebService2Stub.GetEmployee();
             // llenar la solicitud con el número de empleado
             empRequest.setEmpno("000130");
    
             // crear la Cabecera para el elemento de solicitud
             WebService2Stub.ConnectionProperties properties = new WebService2Stub.ConnectionProperties();
             WebService2Stub.ConnectionPropertiesType propertiesType = new WebService2Stub.ConnectionPropertiesType();
             properties.setConnectionProperties(propertiesType);
    
             // llenar la cabecera con propiedades
             WebService2Stub.Property_type0 property1 = new WebService2Stub.Property_type0();
             property1.setName("connection.jcc.clientUser");
             property1.setValue("heathr");
             propertiesType.addProperty(property1);
    
             WebService2Stub.Property_type0 property2 = new WebService2Stub.Property_type0();
             property2.setName("connection.jcc.clientWorkstation");
             property2.setValue("myWorkstation");
             propertiesType.addProperty(property2);
    
    
             WebService2Stub.GetEmployeeResponse response =  stub.getEmployee(empRequest, properties);
    
             //...
    
          } catch (Exception e) {
             System.err.println(e.toString());
          }
       }
    }

    Es la solicitud SOAP generada por el código:

    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
       <soapenv:Header>
          <ns1:connectionProperties xmlns:ns1="urn:example">
             <property name="connection.jcc.clientUser" value="heathr"/>
             <property name="connection.jcc.clientWorkstation" value="myWorkstation"/>
          </ns1:connectionProperties>
       </soapenv:Header>
       <soapenv:Body>
          <ns1:getEmployee xmlns:ns1="urn:example">
             <empno>000130</empno>
          </ns1:getEmployee>
       </soapenv:Body>
    </soapenv:Envelope>
Tareas relacionadas
Despliegue de servicios Web mediante el entorno de trabajo
Generación de archivos desplegables para transferirlos manualmente a servidores Web
Migración de aplicaciones Web que se han desarrollado para WORF (Web Object Runtime Framework)
Información relacionada
DB2 Versión 9 para Linux, UNIX y Windows: propiedades para el controlador IBM DB2 para JDBC y SQLJ
DB2 Versión 9 para z/OS: propiedades para el controlador IBM DB2 para JDBC y SQLJ

Feedback