在 WebSphere Application Server 第 8 版中,在 JAX-WS 分派用戶端出埠訊息上如何決定 SOAP 動作設定的行為有了改變。 在第 8 版之前的舊版中,如果分派用戶端應用程式沒有提供 SOAP 動作,JAX-WS 執行時期環境就不會在出埠訊息上傳送正確的 SOAP 動作。 相反地,它會將動作設為匿名作業。 現在,在第 8 版中,如果用戶端應用程式沒有提供 SOAP 動作,JAX-WS 執行時期環境會剖析送出的訊息來判斷所呼叫的作業,且會用它來判斷適當的 SOAP 動作值。
在下列情況下,此規則會標示對建立分派用戶端的呼叫:
WebSphere Application Server Traditional 及 Liberty 供用戶端應用程式利用 JAX-WS 提供 SOAP 動作 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 將停用出埠作業解析。
如需相關資訊,請參閱: