Reputation: 3769
I have a Spring configuration in XML:
<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
<property name="marshaller" ref="marshaller" />
<property name="unmarshaller" ref="unmarshaller" />
<property name="messageSender">
<bean class="org.springframework.ws.transport.http.HttpComponentsMessageSender">
<property name="connectionTimeout" value="30000" />
</bean>
</property>
</bean>
I tried to switch to Java-based configuration, but I got the error "No Qualifying Bean of type WebServiceTemplate Found". How can I fix it?
@Bean
public HttpComponentsMessageSender httpComponentsMessageSender() {
HttpComponentsMessageSender messageSender = new HttpComponentsMessageSender();
messageSender.setConnectionTimeout(30000);
return messageSender;
}
@Bean
public WebServiceTemplate webServiceTemplate(WebServiceTemplate template) {
template.setMessageSender(httpComponentsMessageSender());
return template;
}
Upvotes: 1
Views: 1247
Reputation: 7122
You have WebServiceTemplate
as an argument in the @Bean
method, so Spring assumes you have a bean of that type already created somewhere else. You don't, and Spring goes down screaming about non-existent beans.
You need to instantiate it yourself, just like you did HttpComponentsMessageSender
:
@Bean
public WebServiceTemplate webServiceTemplate() {
WebServiceTemplate template = new WebServiceTemplate();
template.setMessageSender(httpComponentsMessageSender());
return template;
}
Upvotes: 1