簡體   English   中英

如何在Spring Boot中捕獲自定義SOAP Header localPart請求

[英]How to catch custom SOAP Header localPart Request in Spring Boot

我有一個名為RequestSOAPHeader的 POJO類,用於SOAP Header。

在@Endpoint中,我正在捕獲標題,如下所示

@SoapHeader("{" + RequestSOAPHeader.AUTH_NS + "}RequestSOAPHeader")SoapHeaderElement auth

我的問題是,當我嘗試在POJO類中解組標題時,出現以下錯誤。

javax.xml.bind.UnmarshalException: unexpected element (uri:"http://www.test.com/schema/common/v2_1", local:"RequestSOAPHeader"). Expected elements are <{http://www.test.com/schema/common/v2_1}requestSOAPHeader>

我正在使用以下方法解組標題

 private RequestSOAPHeader getAuthentication(SoapHeaderElement header){
    RequestSOAPHeader authentication = null;
    try {

        JAXBContext context = JAXBContext.newInstance(RequestSOAPHeader.class);
        Unmarshaller unmarshaller = context.createUnmarshaller();
        authentication = (RequestSOAPHeader) unmarshaller.unmarshal(header.getSource());

    } catch (JAXBException e) {
        e.printStackTrace();
    }
    return authentication;
}

根據錯誤,我已將標頭localPart名稱更改為requestSOAPHeader ,並且工作正常。

@SoapHeader("{" + RequestSOAPHeader.AUTH_NS + "}requestSOAPHeader")SoapHeaderElement auth

但是我想將RequestSOAPHeader用作header的localPart,而不是requestSOAPHeader

我已經找到了解決方案。

只需在標頭類頂部添加以下代碼段@annotation值即可。 希望能幫助到你

@XmlRootElement(namespace = "http://www.gooogle.com", name = "RequestSOAPHeader")
public class RequestSOAPHeader{
....
}

暫無
暫無

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

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