Implementando Extensões para Clientes de Serviços da Web JAX-RPC
O WebSphere Application Server fornece extensões para clientes de serviços da Web usando o modelo de programação Java™ API for XML-based RPC (JAX-RPC).
Sobre Esta Tarefa
É possível customizar serviços da Web usando as seguintes extensões para o modelo de programação de cliente JAX-RPC.
Procedimento
- Configure as propriedades REQUEST_SOAP_HEADERS e RESPONSE_SOAP_HEADERS em um Stub de cliente JAX-RPC para ativar um cliente de serviços da Web para enviar ou recuperar cabeçalhos SOAP implícitos. Um cabeçalho SOAP implícito é um cabeçalho SOAP que não é explicitamente definido no arquivo WSDL. Um arquivo de cabeçalho SOAP implícito satisfaz uma das seguintes descrições:
- Uma parte da mensagem é declarada como um cabeçalho SOAP na ligação no arquivo WSDL, mas a definição de mensagem não é referenciada por um portType dentro de um arquivo WSDL.
- Um elemento não está contido no arquivo WSDL.
Manipuladores e terminais de serviço podem manipular cabeçalhos SOAP implícitos ou explícitos utilizando o SOAP com a API Attachments para o modelo de dados Java (SAAJ).
Para saber como modificar seu código do cliente para enviar ou recuperar cabeçalhos de transporte, consulte as informações sobre como enviar cabeçalhos SOAP implícitos com o JAX-RPC ou receber cabeçalhos SOAP implícitos com o JAX-RPC.
- Configure as propriedades REQUEST_TRANSPORT_PROPERTIES e RESPONSE_TRANSPORT_PROPERTIES para ativar um cliente de serviços da Web para enviar ou recuperar cabeçalhos de transporte.
Configure as propriedades no objeto Stub ou Call.
Ao modificar seu código de cliente para enviar ou recuperar cabeçalhos de transporte, você pode enviar ou receber informações específicas nos cabeçalhos de transporte de pedidos de saída ou respostas de entrada provenientes do servidor. Para pedidos ou respostas que utilizam o transporte HTTP, as informações são enviadas ou recuperadas em um cabeçalho HTTP. De maneira semelhante, para um pedido ou resposta que utiliza o transporte JMS (Java Message Service), as informações são enviadas ou recuperadas em uma propriedade de mensagem do JMS.
Para saber como modificar seu código do cliente para enviar ou recuperar cabeçalhos de transporte, consulte as informações sobre como enviar cabeçalhos de transporte com o JAX-RPC ou recuperar cabeçalhos de transporte com o JAX-RPC.
Para saber como ativar um cliente de serviços da Web para enviar ou recuperar cabeçalhos de transporte, consulte as informações sobre boas práticas de propriedades do cabeçalho de transporte.
- Implemente o suporte para os métodos javax.xml.rpc.ServiceFactory.loadService(). Os métodos loadService criam uma instância da classe de implementação de serviço gerada de maneira específica da implementação. Os métodos loadService são novos na JAX-RPC 1.1 e incluem três assinaturas:
- public.javax.xml.rpc.Service loadService (Class serviceInterface)
Conforme documentado na especificação JAX-RPC, esse método retorna a implementação de serviço gerada para a interface de serviço. Consulte as especificações de serviços da Web e a documentação da API para revisar a especificação JAX-RPC.
- public.javax.xml.rpc.Service loadService (URL wsdlDocumentLocation,
Class serviceInterface, Properties properties)Esse método se comporta como o loadService (Class serviceInterface) porque os seguintes parâmetros são ignorados:
- wsdlDocumentLocation
- properties
- public.javax.xml.rpc.Service loadService (URL wsdlDocumentLocation,
QName serviceName, Properties properties)
Esse método retorna a implementação de serviço gerada para o serviço especificado utilizando informações de mapeamento de espaço de nomes-para-pacote.
- wsdlDocumentLocation - ignorado
- serviceName - QName (namespace, localpart) do serviço
- properties - Se o parâmetro for não nulo, conterá as entradas de mapeamento de
espaço de nomes-para-pacote. Cada chave de entrada de Propriedade é uma Cadeia correspondendo ao
espaço de nomes. Cada valor da entrada de Propriedade é uma Cadeia que corresponde ao nome do pacote Java.
Se o argumento de propriedades contiver uma entrada com uma chave (espaço de nomes) que corresponda à parte do espaço de nomes do argumento QName serviceName, o valor da entrada (javaPackage) será utilizado como o nome do pacote durante a tentativa de localizar a implementação de serviço.
- public.javax.xml.rpc.Service loadService (Class serviceInterface)
- Implemente a interface CustomBinder para fornecer
componentes de ligação de dados customizados concretos para um tipo de esquema
XML específico (apenas aplicativos JAX-RPC). Os binders de dados customizados são utilizados para mapear os tipos de esquema XML com objetos Java. Os binders de dados customizados fornecem ligações para os tipos de esquema XML que não são suportados pela especificação JAX-RPC (Java API for XML-based Remote Call Procedure) atual. O WebSphere Application Server fornece uma extensão para o modelo de programação Web Services for Java EE (Java Platform, Enterprise Edition) chamada interface CustomBinder que implementa essas ligações customizadas para um tipo específico de esquema XML. A interface CustomBinder têm três propriedades, além de desserializar e serializar métodos:
- QName para o tipo de esquema XML
- Escopo QName
- Tipo Java
O binder de dados customizado define métodos de serialização e desserialização para converter entre um objeto Java e uma interface SOAPElement. Um componente de ligação de dados customizado é incluído no sistema de tempo de execução e interage com o tempo de execução dos serviços da Web usando um SOAPElement. Eles são incluídos no tempo de execução utilizando provedores de ligação customizados. Leia sobre os binders de dados customizados e o provedor de ligação customizado para obter mais informações. Consulte a documentação da interface CustomBinder para obter mais informações sobre a implementação dessa interface para fornecer binders de dados customizados concretos para um tipo de esquema XML específico.
Subtópicos
Binders de Dados Customizados para Aplicativos JAX-RPC
Um binder de dados customizados é utilizado para mapear os tipos de esquema XML com objetos Java. Os binders de dados customizados fornecem ligações para os tipos de esquema XML que não são suportados pela especificação JAX-RPC (Java API for XML-based Remote Call Procedure) atual.Provedores de Ligação Customizada para Aplicativos JAX-RPC
Um provedor de ligação customizada é o pacote de classes do ligador de dados customizados com um arquivo de metadados declarativos. A principal finalidade de um provedor de ligação customizada é agregar ligadores de dados customizados relacionados para suportar cenários de um usuário específico. O provedor de ligação customizada é utilizado para conectar os ligadores de dados customizados às ferramentas do emissor e ao sistema de tempo de execução para que as ferramentas do emissor possam gerar artefatos apropriados e o sistema de tempo de execução possa aumentar seu sistema de mapeamento de tipos existentes para refletir os ligadores de dados customizados aplicados e chamá-los.Interface CustomBinder para Aplicativos JAX-RPC
O WebSphere Application Server define uma interface CustomBinder que pode ser implementada para aplicativos Java API for XML-based Remote Call Procedure(JAX-RPC) para fornecer componentes de ligação de dados customizados concretos para um tipo de esquema XML específico.Uso dos Padrões para Implementação de Binders de Dados Customizados para Aplicativos JAX-RPC
Os binders de dados customizados são utilizados para mapear os tipos de esquema XML com objetos Java. Os binders de dados customizados fornecem ligações para os tipos de esquema XML que não são suportados pela especificação JAX-RPC (Java API for XML-based Remote Call Procedure) atual. O WebSphere Application Server fornece uma extensão para o modelo de programação Web Services for Java EE (Java Platform, Enterprise Edition) chamada interface CustomBinder que implementa essas ligações customizadas para um tipo específico de esquema XML. O provedor de ligação customizado é o pacote de binders de dados customizados, importados para o tempo de execução.Enviando Cabeçalhos SOAP Implícitos com JAX-RPC
É possível ativar um cliente de serviços da Web JAX-RPC (Java API for XML-based RPC) existente para enviar valores em cabeçalhos SOAP implícitos. Ao modificar seu código de cliente para enviar cabeçalhos SOAP implícitos, você pode enviar informações específicas dentro de um pedido de serviço da Web de saída.Recebendo Cabeçalhos SOAP Implícitos com JAX-RPC
É possível ativar um cliente de serviços da Web JAX-RPC (Java API for XML-based RPC) existente para receber os valores dos cabeçalhos SOAP implícitos. Ao modificar seu código de cliente para receber cabeçalhos SOAP implícitos, você pode receber informações específicas dentro de uma resposta de serviço da Web recebida.Enviando Cabeçalhos de Transporte com JAX-RPC
É possível ativar um cliente de serviços da Web (Java API for XML-based RPC) existente para enviar informações definidas pelo aplicativo juntamente com seus pedidos de serviços da Web, utilizando os cabeçalhos de transporte.Recuperando Cabeçalhos de Transporte com JAX-RPC
É possível ativar um cliente de serviços da Web JAX-RPC (Java API for XML-based RPC) existente para recuperar os valores dos cabeçalhos de transporte. Para um pedido que utiliza HTTP, os cabeçalhos de transporte são recuperados dos cabeçalhos HTTP localizados na mensagem de resposta HTTP. Para um pedido que utiliza JMS (Java Message Service), os cabeçalhos de transporte são recuperados das propriedades de mensagens JMS localizadas na mensagem de resposta JMS.


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twbs_extendpm
Nome do arquivo: twbs_extendpm.html