O comportamento mudou no WebSphere Application Server V8 na maneira como a configuração da Ação SOAP é determinada nas mensagens de saída para clientes JAX-WS Dispatch. Nas liberações anteriores a V8, se uma Ação SOAP não for fornecida pelo aplicativo do cliente Dispatch, o ambiente de tempo de execução JAX-WS não enviará a Ação SOAP correta na mensagem de saída. Em vez disso, configura a ação para uma operação anônima. Agora na V8, se a Ação SOAP não for fornecida pelo aplicativo cliente, o ambiente de tempo de execução JAX-WS analisará a mensagem de saída para determinar a operação sendo chamada e usará isso para determinar o valor apropriado para a Ação SOAP.
Esta regra sinaliza as chamadas para criar um cliente Dispatch quando:
Melhores práticas de codificação para o WebSphere Application Server tradicional e Liberty é para o aplicativo cliente fornecer uma ação SOAP com o JAX-WS javax.xml.ws.BindingProvider propriedades SOAPACTION_USE_PROPERTY e o SOAPACTION_URI_PROPERTY . A Ação SOAP fornecida será usada e a análise da mensagem de saída não ocorrerá, independentemente da configuração do DISPATCH_CLIENT_OUTBOUND_RESOLUTION propriedade.
Este exemplo mostra o código de melhor prática com a Ação SOAP configurada no contexto de solicitação. Se SOAPACTION_URI_PROPERTY não está configurado ou se SOAPACTION_USE_PROPERTY é configurado como false , a chamada para o createDispatch() será sinalizado por esta regra
Exemplo:Como essa análise pode ser dispendiosa, uma propriedade pode ser configurada no WebSphere Application Server tradicional no nível do Sistema (para sempre desativar a análise) ou no Contexto de mensagem de solicitação JAX-WS (para desativar a análise de acordo com a mensagem). Se a análise for desativada, a Ação SOAP na mensagem de saída continuará sendo configurada como uma operação anônima como antes. A propriedade de desativação é definida como constante org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION com um valor de Sequência de jaxws.dispatch.outbound.operation.resolution.enable . Se a propriedade não for configurada, ela será interpretada como a Sequência true , ativando a resolução da operação de saída Configurando a propriedade para false desativará a resolução da operação de saída
Para obter informações adicionais, veja: