Я хочу использовать шлюз в нескольких потоках. Мое определение шлюза:
@Bean
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public MarshallingWebServiceOutboundGateway myServiceGateway() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setPackagesToScan("blah.*");
MarshallingWebServiceOutboundGateway gateway = new MarshallingWebServiceOutboundGateway(
serviceEndpoint, marshaller, messageFactory);
gateway.setMessageSender(messageSender);
gateway.setRequestCallback(messageCallback);
return gateway;
}
Обратите внимание, что я определил бин шлюза сообщений в прототипе области видимости, поэтому Spring должен создать несколько экземпляров шлюза. Тем не менее, я получаю это сообщение при запуске:
Caused by: java.lang.IllegalArgumentException: A reply MessageProducer may only be referenced once (myServiceGateway) - use @Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE) on @Bean definition.
Почему он настаивает на том, что на шлюз нельзя ссылаться более одного раза, и как я могу использовать один и тот же шлюз из нескольких потоков?
Использование пружинной интеграции 5.0.4