Incluindo Parâmetros em Serviços da Web

É possível incluir parâmetros em serviços da Web que configuram propriedades opcionais dentro de um banco de dados suportado, no qual um serviço da Web desempenha operação contrárias e em propriedades opcionais das conexões entre o serviço da Web e o banco de dados. Você pode incluir esses parâmetros por padrão nos serviço da Web criados dentro de um projeto de desenvolvimento de dados ou pode incluí-los ao implementar serviços da Web individuais.

É possível transmitir informações de controle ou de auditoria adicionais para serviços da Web, especificando parâmetros de serviços da Web adicionais e, em seguida, transmitindo valores para esses parâmetros. Especifique os parâmetros na tabela Parâmetros, a qual aparece na página Serviços da Web da janela Propriedades de seu projeto e no assistente Implementar Serviços da Web.

Você pode transmitir valores para os parâmetros adicionais por três métodos diferentes:
  • Especificando os valores diretamente na tabela Parâmetros
  • Especificando os valores nos cabeçalhos da mensagem SOAP, se os aplicativos cliente enviarem mensagens SOAP/HTTP para os serviços da Web

Os valores transmitidos aplicam-se apenas à operação que a mensagem solicita. Eles não ultrapassam mais de uma mensagem ou operação.

Procedimento:

  1. Decida quais parâmetros que você deseja incluir e os valores que deseja configurar para eles.
    Parâmetros para Transmitir Informações do Banco de Dados DB2
    • connection.jcc.clientAccountingInformation
    • connection.jcc.clientUser
    • connection.jcc.clientProgramName
    • connection.jcc.clientWorkstation

    Para obter descrições desses parâmetros, consulte os links na seção Informações Relacionadas na parte inferior desse tópico. Quando você seguir um link, pesquise o parâmetro procurando na terceira parte de seu nome. Por exemplo, se o parâmetro for connection.jcc.clientUser, pesquise-o procurando em clientUser.

    Parâmetros para Transmitir Informações de Conexão
    connection.stmt.maxRows
    Especifica o número máximo de linhas para retornar para um conjunto de resultados.
    connection.stmt.queryTimeout
    Especifica o número de segundos que o driver JDBC aguardará a execução da instrução no banco de dados. Se a instrução não for executada nesse tempo, a conexão é fechada.
  2. Se você estiver utilizando o servidor da Web Apache Tomcat, sua definição de Recurso configura o parâmetro accessToUnderlyingConnectionAllowed como true. Por exemplo, se você estiver utilizando o banco de dados de amostra fornecido com o DB2 para Linux, UNIX e Windows, sua definição de recurso seria semelhante a esta. O parâmetro accessToUnderlyingConnectionAllowed é ressaltado em negrito.
    <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 a janela Propriedades para o projeto de desenvolvimento de dados ou para o assistente Implementar Serviço da Web.
    • Se você quiser incluir os novos parâmetros em cada serviço da Web dentro do projeto de desenvolvimento de dados, clique com o botão direito do mouse na pasta Projeto e selecione Propriedades. Na janela Propriedades, selecione Serviços da Web.
    • Se você quiser incluir os novos parâmetros apenas em um serviço da Web sendo implementado, execute as etapas a seguir no assistente Implementar.
  4. Na tabela Parâmetros, clique em Novo para cada parâmetro que você deseja incluir. Uma nova linha editável aparece na tabela sempre que você fizer isso.
  5. Digite o nome do parâmetro na coluna Nome da nova linha editável.
  6. Para cada parâmetro, siga estas etapas:
    1. Na tabela Parâmetros, clique em Novo. Uma linha editável aparece na tabela.
    2. Digite o nome do parâmetro na coluna Nome da linha editável.
    3. Se você quiser o valor do parâmetro a ser utilizado sempre que um serviço da Web desempenhar uma operação no banco de dados, digite o valor do parâmetro na coluna Valor. Se o parâmetro começar com o serviço de prefixo, será necessário especificar o valor.
    4. Se você quiser fornecer o valor no cabeçalho de mensagens SOAP, deixe a coluna Valor em branco.

Exemplo

Suponha que você deseja configurar a propriedade da conexão do banco de dados clientUser para todos os serviços da Web dentro do projeto de desenvolvimento de dados. Clique com o botão direito do mouse na pasta Serviços da Web e selecione Propriedades. Na tabela Parâmetros, clique em Novo para incluir uma linha na tabela. Na coluna Nome da nova linha, digite connection.jcc.clientUser.

A tabela Parâmetros do assistente Implementar Serviço da Web e a página Propriedades da pasta Serviços da Web.
Há duas maneiras que você pode fornecer o valor para este parâmetro:
  • Especifique o valor na coluna Valor da nova linha. Os serviços da Web se aplicarão ao parâmetro e seus valores a todas as conexões com o banco de dados, sem exceção.
    Especificando o valor do parâmetro na coluna Valor da tabela Parâmetros.
  • Especifique o valor no cabeçalho de mensagens SOAP/HTTP que os aplicativos cliente enviam para os serviços da Web. Nesse caso, o valor é opcional. Não ocorrerá nenhum erro, se uma mensagem não fornecer o valor em um cabeçalho SOAP.

    Amostra para código gerado pelo Apache Axis2 utilizando o cabeçalho SOAP

    package myClientTest;
    
    import example.WebService2Stub;
    
    public class getEmployee {
    
       public static void main(String args[]) {
          try {
             // create the stub
             WebService2Stub stub = new WebService2Stub("http://localhost:8000/WebService2/services/WebService2");
             // create the request elment for SOAP body
             WebService2Stub.GetEmployee empRequest = new  WebService2Stub.GetEmployee();
             // fill request with employee number
             empRequest.setEmpno("000130");
    
             // create the Header for the request element
             WebService2Stub.ConnectionProperties properties = new WebService2Stub.ConnectionProperties();
             WebService2Stub.ConnectionPropertiesType propertiesType = new WebService2Stub.ConnectionPropertiesType();
             properties.setConnectionProperties(propertiesType);
    
             // fill the header with properties
             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());
          }
       }
    }

    Este é o pedido SOAP gerado pelo 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>
Tarefas relacionadas
Implementando Serviços da Web Através do Ambiente de Trabalho
Gerando Arquivos WAR (Web Archive) para Transferir Manualmente Servidores da Web
Migrando Aplicativos da Web que Foram Desenvolvidos para a WORF (Web Object Runtime Framework)
Informações relacionadas
DB2 Versão 9 para Linux, UNIX e Windows: Propriedades para o IBM DB2 Driver para JDBC e SQLJ
DB2 Versão 9 para z/OS: Propriedades do IBM DB2 Driver para JDBC e SQLJ

Feedback