Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ru.mos.eirc.ebda.client;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
- import org.springframework.ws.soap.client.core.SoapActionCallback;
- import ru.mos.eirc.ebda.wsdl.GetBanksListBySearchParamsRequest;
- import ru.mos.eirc.ebda.wsdl.GetBanksListBySearchParamsResponse;
- import ru.mos.eirc.ebda.wsdl.GetOrganizationByOrgIdRequest;
- import ru.mos.eirc.ebda.wsdl.GetOrganizationByOrgIdResponse;
- import ru.mos.eirc.ebda.wsdl.GetOrganizationsListBySearchParamsRequest;
- import ru.mos.eirc.ebda.wsdl.GetOrganizationsListBySearchParamsResponse;
- import javax.xml.bind.JAXBElement;
- import javax.xml.namespace.QName;
- public class EBDAClient extends WebServiceGatewaySupport {
- @Value("${client.namespace.uri}")
- private String namespace;
- @Value("${client.default.uri}")
- private String clientDefaultUri;
- /**
- * Метод используется для получения организации по ее идентификатору.
- */
- public GetOrganizationByOrgIdResponse getOrganizationByOrgId(GetOrganizationByOrgIdRequest request) {
- // String soapAction = "GetOrganizationByOrgIdRequest";
- // QName qName = new QName(namespace, soapAction);
- // // Здесь и далее устанавливаем корневой элемент. Необходим для маршалинга.
- // JAXBElement<GetOrganizationByOrgIdRequest> root = new JAXBElement<GetOrganizationByOrgIdRequest>(qName,
- // GetOrganizationByOrgIdRequest.class, request);
- //
- // GetOrganizationByOrgIdResponse response = (GetOrganizationByOrgIdResponse) getWebServiceTemplate()
- // .marshalSendAndReceive(clientDefaultUri, root,
- // new SoapActionCallback(namespace + "/" + soapAction));
- //
- // return response;
- return getSOAPResponse(GetOrganizationByOrgIdResponse.class, GetOrganizationByOrgIdRequest.class,
- request, "GetOrganizationByOrgIdRequest");
- }
- /**
- * Запрос списка организаций по поисковым параметрам.
- */
- public GetOrganizationsListBySearchParamsResponse getOrganizationsListBySearchParams(
- GetOrganizationsListBySearchParamsRequest request) {
- String soapAction = "GetOrganizationsListBySearchParamsRequest";
- QName qName = new QName(namespace, soapAction);
- JAXBElement<GetOrganizationsListBySearchParamsRequest> root =
- new JAXBElement<GetOrganizationsListBySearchParamsRequest>(qName,
- GetOrganizationsListBySearchParamsRequest.class, request);
- GetOrganizationsListBySearchParamsResponse response = (GetOrganizationsListBySearchParamsResponse)
- getWebServiceTemplate().marshalSendAndReceive(clientDefaultUri, root,
- new SoapActionCallback(namespace + "/" + soapAction));
- return response;
- }
- /**
- * Запрос списка банков по поисковым параметрам.
- */
- public GetBanksListBySearchParamsResponse getBanksListBySearchParams(GetBanksListBySearchParamsRequest request) {
- String soapAction = "GetBanksListBySearchParamsRequest";
- QName qName = new QName(namespace, soapAction);
- JAXBElement<GetBanksListBySearchParamsRequest> root =
- new JAXBElement<GetBanksListBySearchParamsRequest>(qName,
- GetBanksListBySearchParamsRequest.class, request);
- GetBanksListBySearchParamsResponse response = (GetBanksListBySearchParamsResponse)
- getWebServiceTemplate().marshalSendAndReceive(clientDefaultUri, root,
- new SoapActionCallback(namespace + "/" + soapAction));
- return response;
- }
- private <T, E> T getSOAPResponse(Class<T> responseType, Class<E> requestType, Object request, String soapAction) {
- QName qName = new QName(namespace, soapAction);
- // Здесь и далее устанавливаем корневой элемент. Необходим для маршалинга.
- JAXBElement<E> root = new JAXBElement<E>(qName,
- requestType, requestType.cast(request));
- T response = responseType.cast(getWebServiceTemplate()
- .marshalSendAndReceive(clientDefaultUri, root,
- new SoapActionCallback(namespace + "/" + soapAction)));
- return response;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement