reimplemented bean lookup to avoid getBeanNamesForType(Object.class)
This commit is contained in:
parent
dc6c1dc727
commit
1b8a67d5d7
|
|
@ -16,6 +16,7 @@
|
||||||
|
|
||||||
package org.springframework.remoting.jaxws;
|
package org.springframework.remoting.jaxws;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.LinkedHashSet;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
@ -26,9 +27,11 @@ import javax.xml.ws.WebServiceProvider;
|
||||||
|
|
||||||
import org.springframework.beans.factory.BeanFactory;
|
import org.springframework.beans.factory.BeanFactory;
|
||||||
import org.springframework.beans.factory.BeanFactoryAware;
|
import org.springframework.beans.factory.BeanFactoryAware;
|
||||||
|
import org.springframework.beans.factory.CannotLoadBeanClassException;
|
||||||
import org.springframework.beans.factory.DisposableBean;
|
import org.springframework.beans.factory.DisposableBean;
|
||||||
import org.springframework.beans.factory.InitializingBean;
|
import org.springframework.beans.factory.InitializingBean;
|
||||||
import org.springframework.beans.factory.ListableBeanFactory;
|
import org.springframework.beans.factory.ListableBeanFactory;
|
||||||
|
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Abstract exporter for JAX-WS services, autodetecting annotated service beans
|
* Abstract exporter for JAX-WS services, autodetecting annotated service beans
|
||||||
|
|
@ -99,8 +102,13 @@ public abstract class AbstractJaxWsServiceExporter implements BeanFactoryAware,
|
||||||
* @see #publishEndpoint
|
* @see #publishEndpoint
|
||||||
*/
|
*/
|
||||||
public void publishEndpoints() {
|
public void publishEndpoints() {
|
||||||
String[] beanNames = this.beanFactory.getBeanNamesForType(Object.class, false, false);
|
Set<String> beanNames = new LinkedHashSet<String>(this.beanFactory.getBeanDefinitionCount());
|
||||||
|
beanNames.addAll(Arrays.asList(this.beanFactory.getBeanDefinitionNames()));
|
||||||
|
if (this.beanFactory instanceof ConfigurableBeanFactory) {
|
||||||
|
beanNames.addAll(Arrays.asList(((ConfigurableBeanFactory) this.beanFactory).getSingletonNames()));
|
||||||
|
}
|
||||||
for (String beanName : beanNames) {
|
for (String beanName : beanNames) {
|
||||||
|
try {
|
||||||
Class<?> type = this.beanFactory.getType(beanName);
|
Class<?> type = this.beanFactory.getType(beanName);
|
||||||
WebService wsAnnotation = type.getAnnotation(WebService.class);
|
WebService wsAnnotation = type.getAnnotation(WebService.class);
|
||||||
WebServiceProvider wsProviderAnnotation = type.getAnnotation(WebServiceProvider.class);
|
WebServiceProvider wsProviderAnnotation = type.getAnnotation(WebServiceProvider.class);
|
||||||
|
|
@ -121,6 +129,10 @@ public abstract class AbstractJaxWsServiceExporter implements BeanFactoryAware,
|
||||||
this.publishedEndpoints.add(endpoint);
|
this.publishedEndpoints.add(endpoint);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
catch (CannotLoadBeanClassException ex) {
|
||||||
|
// ignore beans where the class is not resolvable
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue