In WebSphere Application Server Version 8 hat sich das Verhalten in Bezug auf die Bestimmung der Einstellung für SOAP-Aktionen in abgehenden Nachrichten für JAX-WS-Dispatch-Clients geändert. Wenn in Releases vor Version 8 keine SOAP-Aktion von der Dispatch-Clientanwendung bereitgestellt wird, sendet die JAX-WS-Laufzeitumgebung nicht die richtige SOAP-Aktion in der abgehenden Nachricht. Stattdessen setzt sie die Aktion auf anonym. In Version 8 ist es nun so, dass die JAX-WS-Laufzeitumgebung in dem Fall, dass die Clientanwendung keine SOAP-Aktion angibt, die abgehende Nachricht parst, um die aufgerufene Operation zu bestimmen, und diese dann verwendet, um den entsprechenden Wert für die SOAP-Aktion zu bestimmen.
Diese Regel markiert Aufrufe zum Erstellen eines Dispatch-Client in den folgenden Fällen:
Bewährte Codierungsverfahren für WebSphere Application Server Traditional und Liberty : Die Clientanwendung stellt eine SOAP-Aktion mit JAX-WS bereit. javax.xml.ws.BindingProvider Eigenschaften SOAPACTION_USE_PROPERTY und die SOAPACTION_URI_PROPERTY . Die bereitgestellte SOAP-Aktion wird verwendet und das Parsing der abgehenden Nachricht findet nicht statt, unabhängig von der Einstellung der DISPATCH_CLIENT_OUTBOUND_RESOLUTION angeben.
Das folgende Beispiel zeigt die bewährte Programmierpraxis mit gesetzter SOAP-Aktion im Anforderungskontext. Wenn das SOAPACTION_URI_PROPERTY ist nicht festgelegt oder wenn SOAPACTION_USE_PROPERTY ist festgelegt auf false , den Aufruf an die createDispatch() wird von dieser Regel markiert.
Beispiel:Da dieses Parsing kostenintensiv sein kann, kann in WebSphere Application Server Traditional eine Eigenschaft auf Systemebene (zum dauerhaften Inaktivieren des Parsings) oder im JAX-WS-Anforderungsnachrichtenkontext (zum Inaktivieren des Parsings auf Nachrichtenbasis) gesetzt werden. Wenn das Parsing inaktiviert ist, wird die SOAP-Aktion in der abgehenden Nachricht weiterhin auf anonym gesetzt. Die Inaktivierungseigenschaft ist als Konstante definiert org.apache.axis2.jaxws.Constants.DISPATCH_CLIENT_OUTBOUND_RESOLUTION mit einem Zeichenfolgewert von jaxws.dispatch.outbound.operation.resolution.enable . Wenn die Eigenschaft nicht festgelegt ist, wird sie als Zeichenfolge interpretiert. true , die Auflösung der abgehenden Operation aktivieren. Eigenschaft festlegen auf false inaktiviert die Auflösung abgehender Operationen.
Weitere Informationen finden Sie in den folgenden Dokumenten: