[英]Convert Spring configuration from XML to Java-based: No Qualifying bean Exception
I have a Spring configuration in XML: 我在XML中有一个Spring配置:
<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". 我尝试切换到基于Java的配置,但是出现错误“找不到类型为WebServiceTemplate的合格豆”。 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;
}
You have WebServiceTemplate
as an argument in the @Bean
method, so Spring assumes you have a bean of that type already created somewhere else. @Bean
方法@Bean
WebServiceTemplate
作为参数,因此Spring假定您已经在其他地方创建了该类型的bean。 You don't, and Spring goes down screaming about non-existent beans. 您没有,Spring抱怨不存在的bean。
You need to instantiate it yourself, just like you did HttpComponentsMessageSender
: 您需要自己实例化它,就像您执行
HttpComponentsMessageSender
:
@Bean
public WebServiceTemplate webServiceTemplate() {
WebServiceTemplate template = new WebServiceTemplate();
template.setMessageSender(httpComponentsMessageSender());
return template;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.