支援匯流排的 Web 服務:已知限制
使用支援服務整合匯流排的 Web 服務時有一些已知限制。
透過服務整合匯流排傳遞 SOAP 標頭
- 服務整合技術所產生的 WSDL 中未包含 SOAP 標頭。
- 如果您在 SOAP 訊息上設定「必須理解」旗標,則會收到錯誤訊息。
帶有附件的 SOAP 在支援方面的限制
服務整合匯流排支援含有下列附件的 SOAP 訊息:舊式附件(如 帶有附件的 SOAP W3C 記錄所述),或採用 Web 服務 - 交互作業能力 (WS-I) 附件設定檔 1.0 版的附件。如果您必須轉換附件的樣式,您可以使用調解來不同的附件編碼樣式之間對映。
如果 WebSphere® Application Server 所裝載的 Web 服務有一項作業的要求訊息中沒有附件,在其回應訊息中也未傳回附件,則支援匯流排的 Web 服務無法呼叫此服務。
- 使用 DIME。
- 使用 mime:mimeXml WSDL 標籤。
- 將 mime:multipartRelated 巢狀置於 mime:part 內。
- 使用 DataHandlers、影像等的陣列或向量。
如果您透過服務整合匯流排傳遞大型附件,Java™ 虛擬機器中可能會發生記憶體不足錯誤。如果要解決這個問題,請增加 JVM 資料堆大小,如Tuning bus-enabled web services中所述。
如需相關資訊,請參閱Passing SOAP messages with attachments through the service integration bus。
不保證出埠服務上有 JAAS 主體認證記號可用
- 不可序列化的內容。
- 任何實作 com.ibm.wsspi.security.token.Token 或其任何子介面且未將 forwardability 屬性設為 true 的記號。
比方說,如果在套用至入埠連接埠的 WS-Security 配置和連結內配置自訂 TokenConsumer,該 TokenConsumer 在 JAAS 主體的私密認證內設定記號,而該記號實作 com.ibm.wsspi.security.token.Token 且將 forwardability 屬性設為 false,則在對應的出埠連接器 WS-Security 配置和連結上配置的任何自訂 TokenGenerator,不應該依賴 JAAS 主體內可用的記號。
對於形式不完整 SOAP 訊息的接受度
支援匯流排的 Web 服務在檢查 Web 服務訊息的有效性時,比起在 WebSphere Application Server 5.1 版中檢查時更徹底。因此,如果有某些用戶端應用程式使用形式不完整的要求或回應(訊息組件命名不當),而在使用 5.1 版時沒問題,則在更新的版本中都視為形式不完整。
- 匯流排可接受形式不完整的訊息。
- 匯流排可產生形式不完整的訊息。
舊版 WS-Security 草稿規格在支援方面的限制
服務整合技術不支援舊版 WebSphere Application Server 中由一般 Web 服務支援所支援的 WS-Security 草稿規格版本。 服務整合技術僅支援「OASIS Web 服務安全 1.0 版規格」、「使用者名稱記號 1.0 版設定檔」及「X.509 記號 1.0 版設定檔」。如需這些支援的規格和設定檔的相關資訊,請參閱Supported functionality from OASIS specifications。
所有使用 WS-Security 來與服務整合技術互動的用戶端應用程式和目標服務,也都必須符合這些規格的支援層次。 符合先前支援的 WS-Security 草稿規格版本的用戶端應用程式和目標服務,無法與服務整合技術互動,因為 SOAP 訊息與 WS-Security 的發訊格式在「OASIS Web 服務安全 1.0 版」規格中已變更,而且與規格的舊版草稿不相容。
透過 JAX-RPC 用戶端應用程式重定目標的服務所使用的 Java 類型方面的限制
當您從 JAX-RPC 用戶端直接透過匯流排傳送 Web 服務訊息,將訊息傳遞至某個目的地的服務整合匯流排時,您可使用的 Java 類型有所限制。
服務必須將其介面中使用的類型限於 JAX-RPC 規格中已定義對映的類型,才能重設目標。 因此,只有部分可能的 XML 綱目才支援用於 WSDL 文件中。 比方說,如果介面有任何元素對映至 SOAPElement,則無法透過匯流排重設目標。
將出埠服務配置為使用 WSDL 埠
- 如果您傳遞 Address 類型的物件,則該類別及 Address 物件內序列化的所有物件的類別,都必須存在於 WebSphere Application Server 類別路徑上。
- 如果 Enterprise Bean 有一個方法的簽章包含 java.util.List 物件,且預期清單是 Address 物件清單,則 Address 類別必須在 WebSphere Application Server 類別路徑上。