Я согласен с Anup, вам следует взглянуть на sfdc wsc.
Если вы хотите полностью отказаться от состояния, вам нужно знать следующее о подключении к salesforce.
- каждое действие должно иметь URL-адрес конечной точки, например, na6.salesforce.com или na7.salesforce.com
- каждое действие должно иметь действительный SID (идентификатор сеанса) для завершения действия.
Когда вы входите в систему salesforce, исходной конечной точкой является login.salesforce.com, и если вы добились успеха, вам вернут действительную конечную точку (na6.salesforce.com) и SID.
Затем вы можете перетащить эту конечную точку / sid в синглтон и поделиться ею с таким количеством пружинных бобов, как вы хотите. В каждом бине вам нужно будет создать новый SoapBindingStub и установить конечную точку и sid перед выполнением вставки / upsert / update / и т. Д. действие.
Срок действия этого sid истечет через некоторое время бездействия (где-то от 30 до 120 минут, в зависимости от настроек), поэтому вы должны перехватить любые исключения и повторно войти в систему с помощью объекта-одиночки.
Не беспокойтесь о двух bean-компонентах, вызывающих повторный логинг синглтона одновременно, потому что salesforce возвратит один и тот же sid обоим.