SPIs Web Services Addressing Proprietárias da IBM

As interfaces de programação do sistema (SPIs) do Web Services Addressing (WS-Addressing) proprietárias da IBM estendem as interfaces de programação de aplicativos (APIs) do WS-Addressing proprietárias da IBM para permitir a criação e a racionalização sobre o conteúdo das referências de terminais e outros artefatos do WS-Addressing e para configurar ou recuperar as message-addressing properties (MAPs) do WS-Addressing nas mensagens de serviços da Web ou a partir delas.

Não é possível usar as classes de API JAX-WS padrão com essas SPIs proprietárias. Entretanto, é possível converter referências de terminais criadas usando as classes de API JAX-WS padrão para instâncias da classe com.ibm.websphere.wsaddressing.EndpointReference proprietária, usando a classe com.ibm.websphere.wsaddressing.jaxws21.EndpointReferenceConverter. Em seguida, essas referências de terminais convertidas podem ser utilizadas com as SPIs proprietárias.

As interfaces de programação neste tópico são descritas em mais detalhes na documentação da SPI WS-Addressing da IBM.

Criando, Refinando e Racionalizando Sobre o Conteúdo das Referências de Terminal

As SPIs proprietárias para criação, refinamento e racionalização sobre o conteúdo das referências de terminais estão contidas no pacote com.ibm.wsspi.wsaddressing e são resumidas na seguinte ilustração (as primeiras duas interfaces são interfaces API proprietárias estendidas pelas SPIs):
Consulte a documentação da SPI para obter detalhes das classes e interfaces fornecidas.

A SPI estende a API proprietária com.ibm.websphere.wsaddressing.EndpointReference do WS-Addressing para fornecer vários métodos adicionais por meio da interface com.ibm.wsspi.wsaddressing.EndpointReference. É possível converter instâncias de com.ibm.websphere.wsaddressing.EndpointReference em com.ibm.wsspi.wsaddressing.EndpointReference para acessar estas funções adicionais.

De forma semelhante, a SPI com.ibm.wsspi.wsaddressing.EndpointReferenceManager estende o conjunto de funções fornecidas na API com.ibm.websphere.wsaddressing.EndpointReferenceManager.

É possível concluir as seguintes ações usando os métodos adicionais fornecidos pelas SPIs EndpointReference e EndpointReferenceManager:
Criar Referências ao Terminal
Crie objetos EndpointReference especificando o URI do terminal que o objeto EndpointReference deve representar, usando a operação createEndpointReference(URI) ou a operação EndpointReferenceManager.createEndpointReference(AttributedURI). Esses métodos diferem do método createEndpointReference fornecido no nível de API, uma vez que não geram automaticamente o URI para a instância EndpointReference. Você pode usar estes métodos quando souber que o URI do terminal é estável, por exemplo, em um ambiente de teste sem restrições de implementação.
Mapeie entre as representações XML e Java™ de uma referência de terminal
É possível serializar instâncias da interface EndpointReference para suas instâncias de elemento SOAP correspondentes, usando a operação EndpointReference.getSOAPElement. De modo contrário, é possível desserializar os elementos SOAP de tipo EndpointReferenceType na representação Java EndpointReference, utilizando a operação EndpointReference.createEndpointReference(SOAPElement). É possível achar essas interfaces de serialização e desserialização úteis se estiver criando binders customizados para os tipos que contêm instâncias EndpointReference.
Utilize tipos de parâmetros de referência mais complexos
As interfaces proprietárias fornecidas no nível de API estão restritas a parâmetros de referência do tipo xsd:string para permitir um modelo de programação mais simples. As SPIs estendem esse suporte para permitir os parâmetros de referência do tipo <xsd:any>. A interface EndpointReference fornece mecanismos para obter e configurar parâmetros de referência como elementos SOAP. Adicionalmente, a classe EndpointReferenceManager fornece a operação getSOAPElementReferenceParameterFromMessageContext, permitindo que os terminais de recepção adquiram parâmetros de referência que não sejam do tipo String a partir da mensagem de entrada.
Nota: Ao chamar um serviço com um objeto EndpointReference que contém um parâmetro de referência, você deve criar o parâmetro de referência, usando um objeto QName completo, com todas as partes presentes: espaço de nomes, parte local e prefixo. Se o objeto QName não estiver completo, as chamadas de serviço falharão.
Configure e racionalize sobre os conteúdos de referência ao terminal
A interface EndpointReference fornece operações para configurar e racionalizar sobre o conteúdo de uma instância EndpointReference, como suas propriedades de endereço e metadados do WS-Addressing. Interfaces adicionais são fornecidas para representar os artefatos que compõem uma referência de terminal: Metadata, AttributedURI e ServiceName. Você cria instâncias destas interfaces usando operações fornecidas pela classe WSAddressingFactory de proprietário.
Adquira e altere o espaço de nome suportado
O suporte ao WS-Addressing neste produto suporta vários espaços de nomes. As operações setNamespace e getNamespace fornecidas na interface EndpointReference proprietária possibilitam alterar e adquirir o espaço de nomes associado a um determinado objeto EndpointReference. A serialização para elementos SOAP está de acordo com o espaço de nomes do objeto EndpointReference. Por padrão, o espaço de nomes da referência de terminal de destino (a referência de terminal configurada como a propriedade com.ibm.websphere.wsaddressing.WSAConstants.WSADDRESSING_DESTINATION_EPR no contexto de pedido do objeto BindingProvider do JAX-WS ou do objeto Stub ou Call do JAX-RPC) define o espaço de nomes das propriedades de endereçamento da mensagem.

Configurando e Recuperando as Propriedades de Endereçamento de Mensagem do WS-Addressing

A SPI WS-Addressing proprietária da IBM fornece várias constantes que identificam as propriedades de JAX-WS ou JAX-RPC que podem ser utilizadas para configurar MAPs do WS-Addressing em propriedades de mensagens de saída e de contexto da mensagem que podem ser utilizadas para recuperar MAPs em mensagens de entrada. Essas constantes são mostradas no seguinte diagrama, na classe com.wsspi.wsaddresssing.WSAConstants. O diagrama também mostra as interfaces necessárias para gerar as instâncias dos tipos de valores de propriedade apropriadas AttributedURI e Relationship. A primeira interface WSAConstants é uma interface API proprietária.
Consulte a documentação SPI para obter detalhes das classes, interfaces e constantes fornecidas.

Configurando as propriedades de endereçamento de mensagem do WS-Addressing nas mensagens de saída:

É possível incluir cabeçalhos de informações de mensagem do WS-Addressing em mensagens de saída, configurando-se as propriedades adequadas no contexto de pedido do objeto BindingProvider do JAX-WS, ou no objeto Stub ou Call do JAX-RPC, antes de chamar uma mensagem com o objeto Stub ou Call do BindingProvider. A seguinte tabela resume as propriedades relevantes e seus tipos.
Tabela 1. Propriedades de saída que podem ser configuradas no contexto de solicitação de objeto BindingProvider (ou objeto Stub ou Call). A tabela lista os diferentes nomes de propriedades, seus tipos Java, seus nomes MAP WS-Addressing abstratos e seus valores padrão.
Nome da propriedade (do tipo Cadeia) Tipo Java ou valor da propriedade Nome ou Nomes da MAP abstrata do WS-Addressing, usando a convenção de notação do Conjunto de Informações W3C XML Valor padrão
WSADDRESSING_DESTINATION_EPR com.ibm.websphere.wsaddressing.EndpointReference

[destination] URI
[reference parameters]* (any)

Não definida

Observe que essa propriedade provém da API.

WSADDRESSING_FROM_EPR com.ibm.websphere.wsaddressing.EndpointReference [terminal de origem] Não definida
WSADDRESSING_REPLYTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [terminal de respostas] Ou 'none', se a mensagem for uma mensagem unidirecional sem resposta ou não configurada. Para mensagens assíncronas bidirecionais em aplicativos JAX-WS, essa propriedade é gerada automaticamente. Se, nesta situação, você tentar configurar essa propriedade, uma exceção javax.xml.ws.WebServiceException será ativada. Para mensagens síncronas bidirecionais, será possível configurar essa propriedade somente se o endereço de referência de terminal for o URI anônimo. Se o endereço não for o URI anônimo, uma exceção javax.xml.ws.WebServiceException será ativada.
WSADDRESSING_FAULTTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [terminal de falhas] Não definida

Se você tentar configurar essa propriedade para mensagens assíncronas bidirecionais em aplicativo JAX-WS, uma exceção javax.xml.ws.WebServiceException será emitida. Para mensagens síncronas bidirecionais, será possível configurar essa propriedade somente se o endereço de referência de terminal for o URI anônimo. Se o endereço não for o URI anônimo, uma exceção javax.xml.ws.WebServiceException será lançada.

WSADDRESSING_RELATIONSHIP_SET java.util.Set contendo instâncias de com.ibm.wsspi.wsaddressing.Relationship [relationship] Não definida
WSADDRESSING_MESSAGE_ID com.ibm.wsspi.wsaddressing.AttributedURI [ID de mensagem] Gerado e configurado para um valor exclusivo
WSADDRESSING_ACTION com.ibm.wsspi.wsaddressing.AttributedURI [ação] Gerado e configurado, de acordo com a especificação do WS-Addressing
WSADDRESSING_OUTBOUND_NAMESPACE Sequência de caracteres none O espaço de nomes do WS-Addressing da propriedade WSADDRESSING_DESTINATION_EPR, quando especificado, senão o espaço de nomes padrão

Recuperando as propriedades de endereçamento de mensagem do WS-Addressing de mensagens de entrada:

Os cabeçalhos das informações de mensagem do WS-Addressing correspondentes à última mensagem de entrada estão disponíveis a partir das propriedades de entrada definidas na classe WSAConstants. A tabela a seguir resume as propriedades de entrada disponíveis. Você adquire parâmetros de referência do contexto da mensagem, usando a interface EndpointReferenceManager.getReferenceParameter de proprietário.
Tabela 2. Propriedades de saída que podem ser adquiridas a partir do contexto de mensagem. A tabela lista os diferentes nomes de propriedades, seus tipos Java e nomes MAP WS-Addressing abstratos equivalentes.
Nome da propriedade de contexto da mensagem (do tipo Cadeia) Tipo Java ou valor da propriedade Nome da MAP abstrata do WS-Addressing, usando a convenção de notação do Conjunto de Informações W3C XML
WSADDRESSING_INBOUND_TO com.ibm.wsspi.wsaddressing.AttributedURI [destino]
Nenhuma propriedade específica. Utilize o método EndpointReferenceManager.getReferenceParameter(QName name) para obter a MAP associada. Tipo Any [parâmetros de referência]*
WSADDRESSING_INBOUND_FROM_EPR com.ibm.websphere.wsaddressing.EndpointReference [terminal de origem]
WSADDRESSING_INBOUND_REPLYTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [terminal de respostas]
WSADDRESSING_INBOUND_FAULTTO_EPR com.ibm.websphere.wsaddressing.EndpointReference [terminal de falhas]
WSADDRESSING_INBOUND_RELATIONSHIP java.util.Set contendo instâncias de com.ibm.wsspi.wsaddressing.Relationship [relationship]
WSADDRESSING_INBOUND_MESSAGE_ID com.ibm.wsspi.wsaddressing.AttributedURI [ID de mensagem]
WSADDRESSING_INBOUND_ACTION com.ibm.wsspi.wsaddressing.AttributedURI [ação]
WSADDRESSING_INBOUND_NAMESPACE Sequência de caracteres O espaço de nomes do WS-Addressing da mensagem de entrada

Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=cwbs_wsa_spi
Nome do arquivo: cwbs_wsa_spi.html