Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.09 KB | None | 0 0
  1. package ru.mos.eirc.ebda.client;
  2.  
  3. import org.springframework.beans.factory.annotation.Value;
  4. import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
  5. import org.springframework.ws.soap.client.core.SoapActionCallback;
  6. import ru.mos.eirc.ebda.wsdl.GetBanksListBySearchParamsRequest;
  7. import ru.mos.eirc.ebda.wsdl.GetBanksListBySearchParamsResponse;
  8. import ru.mos.eirc.ebda.wsdl.GetOrganizationByOrgIdRequest;
  9. import ru.mos.eirc.ebda.wsdl.GetOrganizationByOrgIdResponse;
  10. import ru.mos.eirc.ebda.wsdl.GetOrganizationsListBySearchParamsRequest;
  11. import ru.mos.eirc.ebda.wsdl.GetOrganizationsListBySearchParamsResponse;
  12.  
  13. import javax.xml.bind.JAXBElement;
  14. import javax.xml.namespace.QName;
  15.  
  16. public class EBDAClient extends WebServiceGatewaySupport {
  17.  
  18.     @Value("${client.namespace.uri}")
  19.     private String namespace;
  20.  
  21.     @Value("${client.default.uri}")
  22.     private String clientDefaultUri;
  23.  
  24.     /**
  25.      * Метод используется для получения организации по ее идентификатору.
  26.      */
  27.     public GetOrganizationByOrgIdResponse getOrganizationByOrgId(GetOrganizationByOrgIdRequest request) {
  28.  
  29. //      String soapAction = "GetOrganizationByOrgIdRequest";
  30. //      QName qName = new QName(namespace, soapAction);
  31. //      // Здесь и далее устанавливаем корневой элемент. Необходим для маршалинга.
  32. //      JAXBElement<GetOrganizationByOrgIdRequest> root = new JAXBElement<GetOrganizationByOrgIdRequest>(qName,
  33. //          GetOrganizationByOrgIdRequest.class, request);
  34. //
  35. //      GetOrganizationByOrgIdResponse response = (GetOrganizationByOrgIdResponse) getWebServiceTemplate()
  36. //          .marshalSendAndReceive(clientDefaultUri, root,
  37. //              new SoapActionCallback(namespace + "/" + soapAction));
  38. //
  39. //      return response;
  40.         return getSOAPResponse(GetOrganizationByOrgIdResponse.class, GetOrganizationByOrgIdRequest.class,
  41.             request, "GetOrganizationByOrgIdRequest");
  42.  
  43.     }
  44.  
  45.     /**
  46.      * Запрос списка организаций по поисковым параметрам.
  47.      */
  48.     public GetOrganizationsListBySearchParamsResponse getOrganizationsListBySearchParams(
  49.         GetOrganizationsListBySearchParamsRequest request) {
  50.  
  51.         String soapAction = "GetOrganizationsListBySearchParamsRequest";
  52.         QName qName = new QName(namespace, soapAction);
  53.         JAXBElement<GetOrganizationsListBySearchParamsRequest> root =
  54.             new JAXBElement<GetOrganizationsListBySearchParamsRequest>(qName,
  55.             GetOrganizationsListBySearchParamsRequest.class, request);
  56.  
  57.         GetOrganizationsListBySearchParamsResponse response = (GetOrganizationsListBySearchParamsResponse)
  58.             getWebServiceTemplate().marshalSendAndReceive(clientDefaultUri, root,
  59.                 new SoapActionCallback(namespace + "/" + soapAction));
  60.  
  61.         return response;
  62.  
  63.     }
  64.  
  65.     /**
  66.      * Запрос списка банков по поисковым параметрам.
  67.      */
  68.     public GetBanksListBySearchParamsResponse getBanksListBySearchParams(GetBanksListBySearchParamsRequest request) {
  69.  
  70.         String soapAction = "GetBanksListBySearchParamsRequest";
  71.         QName qName = new QName(namespace, soapAction);
  72.         JAXBElement<GetBanksListBySearchParamsRequest> root =
  73.             new JAXBElement<GetBanksListBySearchParamsRequest>(qName,
  74.                 GetBanksListBySearchParamsRequest.class, request);
  75.  
  76.         GetBanksListBySearchParamsResponse response = (GetBanksListBySearchParamsResponse)
  77.             getWebServiceTemplate().marshalSendAndReceive(clientDefaultUri, root,
  78.                 new SoapActionCallback(namespace + "/" + soapAction));
  79.  
  80.         return response;
  81.     }
  82.  
  83.     private <T, E> T getSOAPResponse(Class<T> responseType, Class<E> requestType, Object request, String soapAction) {
  84.  
  85.         QName qName = new QName(namespace, soapAction);
  86.         // Здесь и далее устанавливаем корневой элемент. Необходим для маршалинга.
  87.         JAXBElement<E> root = new JAXBElement<E>(qName,
  88.             requestType, requestType.cast(request));
  89.  
  90.         T response = responseType.cast(getWebServiceTemplate()
  91.             .marshalSendAndReceive(clientDefaultUri, root,
  92.                 new SoapActionCallback(namespace + "/" + soapAction)));
  93.  
  94.         return response;
  95.     }
  96.  
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement