Я сейчас использую весеннюю загрузку. У меня есть список объектов запросов (около 1000), и я хотел бы вызывать службы SOAP параллельно для всех объектов и получать ответ для всех них. Как только все запросы обработаны, я хочу выполнить свою программу параллельно.
Любые хорошие рекомендации?
public class ServiceImpl implements Service {
@Autowired
private SOAPConnector connector;
public void getEmployeeData(){
List<Request> lstRequest = [List of Objects];
List<Response> lstResponse = new ArrayList();
for(int i=0 ; i <=lstRequest.size()-1; i++)
{
lstResponse.add(connector.callEmployeeService());
}
callAnotherMethod(lstResponse);
}
}
public class SOAPConnector extends WebServiceGatewaySupport {
public Response callEmployeeService(Request request) {
try{
return (Response) getWebServiceTemplate().marshalSendAndReceive(request);
} catch (Exception e) {
}
}
}
@Configuration
public class Configurator {
@Value("${service.url}")
private String SERVICE_URL;
@Autowired
ComponentMessageSender httpComponentsMessageSender;
@Bean
public SOAPConnector getClient() {
SOAPConnector client = new SOAPConnector();
client.setMarshaller(getMarshaller());
client.setUnmarshaller(getMarshaller());
client.setDefaultUri(SERVICE_URL);
try {
client.setMessageSender(httpComponentsMessageSender.getHttpComponentsMessageSender());
} catch (Exception e){
System.out.println("error on message sender ");
}
return client;
}
private Jaxb2Marshaller getMarshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setClassesToBeBound(Request.class, Response.class);
return marshaller;
}
}