簡體   English   中英

如何避免消息:使用CXF“SOAP 1.1不支持操作getFaultSubCodes”

[英]How to avoid message: “Operation getFaultSubCodes not supported by SOAP 1.1” with CXF

我的java webapp使用CXF通過SOAP 1.1發布一些Web服務。

在我的服務器日志(Apache Tomcat catalina.out文件)中,出現了以下情況:GRAVE:SAAJ0303:SOAP 1.1不支持操作getFaultSubcodes

每次java webapp業務代碼拋出javax.xml.ws.soap.SOAPFaultException的實例時,都會出現這些日志行。 此異常由Apache CXF org.apache.cxf.jaxws.interceptors.WebFaultOutInterceptor處理,它在SOAPFault實例上調用getFaultSubcodes。

使用SOAP 1.1 SOAPFault,對getFaultSubcodes的調用會引發由CXF捕獲的UnsupportedOperationException,但SOAPFault的實現類會記錄該消息。 是否存在SOAP 1.1特定的CXF故障攔截器?

有沒有人知道如何避免CXF調用不支持的GetFaultSubcodes操作?

是一個很好的解釋, 是2017年7月25日報道的相關(已解決)問題。

你至少有這兩個解決方案:

  1. 如果在代碼中創建了SOAP錯誤,則在實例化用於創建錯誤的工廠時傳遞協議版本1.2。 請注意OP的注釋: 如果使用此解決方案,則可能需要在實例化SOAPFaultException時修改SOAP faultCode字段值。 SOAP 1.1和1.2具有不同的faultCode字段值。

SOAPFactory fac = SOAPFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);

  1. 如果可以,請使用較新的CXF版本 - 至少3.0.15,3.1.13或3.2.0。 (全部於2017年9月11日發布)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM