В WebSphere Application Server 8 изменилось поведение, связанное с определением параметра действия SOAP у исходящих сообщений для клиентов диспетчера JAX-WS. До версии 8, если действие SOAP не передано приложением-клиентом диспетчера, среда выполнения JAX-WS не отправляет правильное действие SOAP в исходящем сообщении. Вместо этого, она указывает анонимную операцию в качестве действия. В версии 8, если действие SOAP не передано приложением-клиентом, среда выполнения JAX-WS определяет вызываемую операцию по содержимому исходящего сообщения и задает соответствующее значение для действия SOAP.
Это правило помечает вызовы для создания клиента диспетчера, когда:
Оптимальные методы кодирования для WebSphere Application Server традиционных и Liberty -это клиентское приложение для предоставления действия SOAP с JAX-WS javax.xml.ws.BindingProvider свойства SOAPACTION_USE_PROPERTY и в SOAPACTION_URI_PROPERTY . При этом будет применяться действие SOAP, и синтаксический анализ исходящего сообщения не будет выполняться независимо от значения параметра DISPATCH_CLIENT_OUTBOUND_RESOLUTION .
В следующем примере показан рекомендуемый код, в котором действие SOAP задано в контексте запроса. Если SOAPACTION_URI_PROPERTY не задано или если SOAPACTION_USE_PROPERTY задается в false , в связи с тем, что createDispatch() метод будет помечен этим правилом.
Пример:Поскольку такой анализ может быть дорогостоящей операцией, в WebSphere Application Server traditional предусмотрено свойство на уровне системы (для полного выключения анализа) и в контексте сообщения-запроса JAX-WS (для отключения анализа у отдельных сообщений). Если анализ выключен, в качестве действия SOAP в исходящем сообщении будет по-прежнему задаваться анонимная операция. Свойство отключения определяется как константа org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION со строковым значением jaxws.dispatch.outbound.operation.resolution.enable . Если свойство не задано, оно интерпретируется как строка true , разрешение исходящей операции. Задание свойства для false отключит разрешение исходящей операции.
Дополнительная информация: