1
我在HandlerConfiguration.java定義就像兩個GenericHandlerResolver豆類:不能自動裝配相同類型的2種配置豆
@Bean(autowire = Autowire.BY_NAME)
@Scope(value = "prototype")
public GenericHandlerResolver defaultHandlerResolver() {
return new GenericHandlerResolver(){{
setHandlers(new ArrayList<Handler>(){{
add(loggingHandler());
add(sessionHandler());
}});
}};
}
@Bean(autowire = Autowire.BY_NAME)
@Scope(value = "prototype")
public GenericHandlerResolver maskingHandlerResolver() {
return new GenericHandlerResolver(){{
setHandlers(new ArrayList<Handler>(){{
add(maskingLoggingHandler());
add(sessionHandler());
}});
}};
}
然後我想自動裝配兩種不同的豆子放進WebServiceConfiguration.java並在幾個使用它們十幾JaxWsPortProxyFactoryBean豆類,如:
@Configuration
public class WebServiceConfiguration {
...
public Integer paymentServiceTimeout;
@Bean @DependsOn("applicationProperties")
public Map<String, Object> paymentServiceProperties(){
return new HashMap<String, Object>(){
{put(timeoutKey, paymentServiceTimeout);}
};
}
...
// Logging handler resolver:
/*@Autowired
protected GenericHandlerResolver defaultHandlerResolver;*/
// Logging handler resolver that will mack Credit Cards:
@Autowired
protected GenericHandlerResolver maskingHandlerResolver;
...
@Bean
@Lazy
@DependsOn("applicationProperties")
public JaxWsPortProxyFactoryBean paymentServicePort() throws Exception {
JaxWsPortProxyFactoryBean jppfb = new JaxWsPortProxyFactoryBean() {{
setServiceInterface(PaymentServicePortType.class);
setWsdlDocumentUrl(new URL(paymentServiceEndpoint + "?wsdl"));
setServiceName("PaymentService");
setEndpointAddress(paymentServiceEndpoint);
setCommonProperties(this,
paymentServiceProperties(),
maskingHandlerResolver,
LEGACY_NAMESPACE);
}};
jppfb.afterPropertiesSet();
return jppfb;
}
protected void setCommonProperties(JaxWsPortProxyFactoryBean bean,
Map<String, Object> customProperties,
GenericHandlerResolver handlerResolver,
String namespace) {
bean.setMaintainSession(false);
bean.setLookupServiceOnStartup(false);
bean.setCustomProperties(customProperties);
bean.setHandlerResolver(handlerResolver);
bean.setNamespaceUri(namespace);
}
我的問題是,這部作品在XML配置,但現在,我動這javaConfig,如果我有WebServiceConfiguration.java多個GenericHandlerResolver,處理程序無法正常工作(不日誌記錄),但我沒有收到任何錯誤消息,所以我不知道發生了什麼。