2015-01-26 3 views
0

Я новичок в SOAP, и, может быть, мой вопрос немного прост или странный. В моем приложении (spring-ws, JAXB) У меня есть интеграция с сторонним сервисом для проверки фона клиента, используя стандарт hr-xml. Полный запрос выглядит следующим образом:Дополнительная информация SOAP в запросе

<?xml version="1.0" encoding="UTF-8"?> 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope"> 
    <SOAP-ENV:Body> 
     <OrderBackgroundCheck> 
     <OrderBackgroundCheckRequest> 
      <Envelope version="01.00"> 
       <Sender> 
        <Id>DDF</Id> 
        <Credential>USERNAME</Credential> 
       </Sender> 
       <Recipient> 
        <Id>Some app</Id> 
       </Recipient> 
       <TransactInfo transactType="request" environment="alpha" mode="test"> 
        <TransactId>1</TransactId> 
        <TimeStamp>2009-04-30T12:28:23</TimeStamp> 
       </TransactInfo> 
       <Packet> 
        <PacketInfo packetType="request"> 
        <PacketId>1</PacketId> 
        <Action>OrderBackgroundCheck</Action> 
        <Manifest>BackgroundCheck.xsd</Manifest> 
        </PacketInfo> 
        <Payload> 
        <![CDATA[...]]> 
        </Payload> 
       </Packet> 
      </Envelope> 
     </OrderBackgroundCheckRequest> 
     </OrderBackgroundCheck> 
    </SOAP-ENV:Body> 
</SOAP-ENV:Envelope> 

Теперь у меня есть тестовый код, который отправляет запрос:

BackgroundCheckType type = new BackgroundCheckType(); //classes generated by JAXB from xsd 
// fill type with data 
webServiceTemplate.marshalSendAndReceive(objectFactory.createBackgroundCheck(type)); 

BackgroundCheckType является корневым для XML-части внутри Payload (идет в CDATA) Насколько я понимаю, , spring-ws 'обертывает мои данные с помощью SOAP Envelope и Body. Я также могу создать классы OrderBackgroundCheck и OrderBackgroundCheckRequest и настроить его с помощью JAXB.

Но часть внутри второй EnvelopeSender, Recipient, TransactInfo и так далее) выглядит связано с некоторым эталоном. Похоже, какой может быть создан и поддерживается какой-то структурой. И я не знаю, как и с какими рамками я могу это сделать.

Возможно, кто-то может помочь с этим или просто объяснить, что это такое? И почему SOAP-сообщение содержит две конверты? Спасибо!

ответ

0

Да, все эти дополнительные материалы, такие как внутренние Envelope и TransactInfo, связаны с обслуживанием. Для сторонних служб эта информация точно такая же. И никакие другие варианты не ожидают поддержки этого вручную.

Смежные вопросы