如何在 JAVA Class uisng JAXBElement 中解组 SOAP UI 值



我正在尝试在java类中解组SOAP UI值。请找到以下示例:

    @PayloadRoot(namespace = NAMESPACE_URI, localPart = "UserList")
    @ResponsePayload
    public JAXBElement<UserListResponse> UserListRequest(@RequestPayload JAXBElement<UserListRequest> request) throws Exception {
        System.out.println("Enters into UserList()");
          // create an unmarshaller
              JAXBContext context = 
                           JAXBContext.newInstance(UserListRequest.class);//Here i am providing the class name of request parameter
              Unmarshaller unmarshaller = context.createUnmarshaller();
              JAXBElement<UserListRequest> root = unmarshaller.unmarshal(new StreamSource(
                        header), UserListRequest.class); //here I am struggling to unmarshal and I am not getting what is value needs to be passed in place "header"
                 UserListRequest list = root .getValue();
                }
            }

SOAP 请求 XML 在 SOAP UI 中传递,如下所示:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:prim="http://COM.SERVICES.WebServices/UserServices">
   <soapenv:Header/>
   <soapenv:Body>
      <prim:UserList>
         <!--Optional:-->
         <prim:XMLRequest>
            <!--Optional:-->
            <prim:Header>
               <!--Optional:-->
               <prim:MessageID>2</prim:MessageID>
               <!--Optional:-->
               <prim:CorrelationID>2</prim:CorrelationID>
               <!--Optional:-->
               <prim:SystemID>2</prim:SystemID>
               <!--Optional:-->
               <prim:RequestorID>2</prim:RequestorID>
            </prim:Header>
            <prim:Reference>C</prim:Reference>
            <!--Optional:-->
            <prim:Number>1120521877477751</prim:Number>
            <!--Optional:-->
            <prim:Usercount>51</prim:Usercount>
         </prim:XMLRequest>
      </prim:UserList>
   </soapenv:Body>
</soapenv:Envelope>

任何人都可以帮助在 Java 类中解组@RequestPayload JAXBElement<UserListRequest>请求。

引发

错误的行...

JAXBElement<UserListRequest> root =
    unmarshaller.unmarshal(new StreamSource(header), UserListRequest.class)

var 标头不会在方法中的任何位置声明。 在尝试查看传入的标头之前,您不应该最初"取消编组"或解析传入的"请求"变量吗?

还值得注意的是,您来自 SoapUI 的请求没有标头。

<soapenv:Header/>

向我指示没有传入标题信息。

相关内容

  • 没有找到相关文章

最新更新