当前位置: 首页>>代码示例>>Java>>正文


Java BeanDefinitionValidationException类代码示例

本文整理汇总了Java中org.springframework.beans.factory.support.BeanDefinitionValidationException的典型用法代码示例。如果您正苦于以下问题:Java BeanDefinitionValidationException类的具体用法?Java BeanDefinitionValidationException怎么用?Java BeanDefinitionValidationException使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


BeanDefinitionValidationException类属于org.springframework.beans.factory.support包,在下文中一共展示了BeanDefinitionValidationException类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: isJaxrsResourceClass

import org.springframework.beans.factory.support.BeanDefinitionValidationException; //导入依赖的package包/类
/**
 * Check whether given bean definition is a valid {@link Provider} or {@link Path} resource.
 * @param definition Bean definition
 * @param beanClass Bean class
 * @return <code>true</code> if it is a valid JAX-RS resource class
 */
private static boolean isJaxrsResourceClass(BeanDefinition definition, Class<?> beanClass) {
	// check Provider
	if (beanClass.isAnnotationPresent(Provider.class)) {
		if (!definition.isSingleton()) {
			throw new BeanDefinitionValidationException("Invalid JAX-RS @Provider bean definition for bean class ["
					+ beanClass + "]: JAX-RS providers must be singleton beans");
		}
		return true;
	}
	// check Path resource
	Class<?> pathClass = AnnotationUtils.getClassWithAnnotation(beanClass, Path.class);
	if (pathClass != null) {
		return true;
	}
	return false;
}
 
开发者ID:holon-platform,项目名称:holon-jaxrs,代码行数:23,代码来源:JerseyResourcesPostProcessor.java

示例2: setApplicationContext

import org.springframework.beans.factory.support.BeanDefinitionValidationException; //导入依赖的package包/类
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
   if (applicationContext instanceof WebApplicationContext) {
      setWebApplicationContext((WebApplicationContext)applicationContext);
      if (getGlobalBeanId() != null) {
         WebappResourceManager other = (WebappResourceManager) ComponentManager.getInstance().get(getGlobalBeanId());
         if (other != null) {
            other.setWebApplicationContext((WebApplicationContext) applicationContext);
         }
         else {
            ComponentManager.getInstance().loadComponent(getGlobalBeanId(), this);
         }
      }
   }
   else {
      throw new BeanDefinitionValidationException(
         "WebappResourceManagerImpl must be used in a Web application context");
   }
}
 
开发者ID:sakaiproject,项目名称:sakai,代码行数:19,代码来源:WebappResourceManagerImpl.java

示例3: registerBean

import org.springframework.beans.factory.support.BeanDefinitionValidationException; //导入依赖的package包/类
/**
 * Register bean.
 *
 * @param beanName       the bean name
 * @param beanDefinition the bean definition
 * @return the boolean
 */
public static synchronized boolean registerBean(String beanName, BeanDefinition beanDefinition) {
    Guard.shouldNotBeEmpty(beanName, "beanName");
    shouldNotBeNull(beanDefinition, "beanDefinition");

    if (isBeanNameInUse(beanName))
        throw new BeanDefinitionValidationException("이미 등록된 Bean입니다. beanName=" + beanName);

    if (log.isInfoEnabled())
        log.info("새로운 Bean을 등록합니다. beanName=[{}], beanDefinition=[{}]", beanName, beanDefinition);

    try {
        getContext().registerBeanDefinition(beanName, beanDefinition);
        return true;
    } catch (Exception e) {
        log.error("새로운 Bean 등록에 실패했습니다. beanName=" + beanName, e);
    }
    return false;
}
 
开发者ID:debop,项目名称:debop4j,代码行数:26,代码来源:Springs.java

示例4: registerBeanDefinition

import org.springframework.beans.factory.support.BeanDefinitionValidationException; //导入依赖的package包/类
public void registerBeanDefinition(String beanName, BeanDefinition beanDefinition)
		throws BeanDefinitionStoreException {

	Assert.hasText(beanName, "Bean name must not be empty");
	Assert.notNull(beanDefinition, "BeanDefinition must not be null");

	if (beanDefinition instanceof AbstractBeanDefinition) {
		try {
			((AbstractBeanDefinition) beanDefinition).validate();
		}
		catch (BeanDefinitionValidationException ex) {
			throw new BeanDefinitionStoreException(beanDefinition.getResourceDescription(), beanName,
					"Validation of bean definition failed", ex);
		}
	}

	synchronized (this.beanDefinitionMap) {
		Object oldBeanDefinition = this.beanDefinitionMap.get(beanName);
		if (oldBeanDefinition != null) {
			if (!this.allowBeanDefinitionOverriding) {
				throw new BeanDefinitionStoreException(beanDefinition.getResourceDescription(), beanName,
						"Cannot register bean definition [" + beanDefinition + "] for bean '" + beanName +
						"': There is already [" + oldBeanDefinition + "] bound.");
			}
			else {
				if (this.logger.isInfoEnabled()) {
					this.logger.info("Overriding bean definition for bean '" + beanName +
							"': replacing [" + oldBeanDefinition + "] with [" + beanDefinition + "]");
				}
			}
		}
		else {
			this.beanDefinitionNames.add(beanName);
			this.frozenBeanDefinitionNames = null;
		}
		this.beanDefinitionMap.put(beanName, beanDefinition);
	}

	resetBeanDefinition(beanName);
}
 
开发者ID:kuali,项目名称:kc-rice,代码行数:41,代码来源:DefaultListableBeanFactory.java

示例5: postProcessBeforeInstantiation

import org.springframework.beans.factory.support.BeanDefinitionValidationException; //导入依赖的package包/类
@Override
public Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) {
	// We only apply special treatment to ScriptFactory implementations here.
	if (!ScriptFactory.class.isAssignableFrom(beanClass)) {
		return null;
	}

	BeanDefinition bd = this.beanFactory.getMergedBeanDefinition(beanName);
	String scriptFactoryBeanName = SCRIPT_FACTORY_NAME_PREFIX + beanName;
	String scriptedObjectBeanName = SCRIPTED_OBJECT_NAME_PREFIX + beanName;
	prepareScriptBeans(bd, scriptFactoryBeanName, scriptedObjectBeanName);

	ScriptFactory scriptFactory = this.scriptBeanFactory.getBean(scriptFactoryBeanName, ScriptFactory.class);
	ScriptSource scriptSource = getScriptSource(scriptFactoryBeanName, scriptFactory.getScriptSourceLocator());
	boolean isFactoryBean = false;
	try {
		Class<?> scriptedObjectType = scriptFactory.getScriptedObjectType(scriptSource);
		// Returned type may be null if the factory is unable to determine the type.
		if (scriptedObjectType != null) {
			isFactoryBean = FactoryBean.class.isAssignableFrom(scriptedObjectType);
		}
	}
	catch (Exception ex) {
		throw new BeanCreationException(beanName,
				"Could not determine scripted object type for " + scriptFactory, ex);
	}

	long refreshCheckDelay = resolveRefreshCheckDelay(bd);
	if (refreshCheckDelay >= 0) {
		Class<?>[] interfaces = scriptFactory.getScriptInterfaces();
		RefreshableScriptTargetSource ts = new RefreshableScriptTargetSource(this.scriptBeanFactory,
				scriptedObjectBeanName, scriptFactory, scriptSource, isFactoryBean);
		boolean proxyTargetClass = resolveProxyTargetClass(bd);
		String language = (String) bd.getAttribute(LANGUAGE_ATTRIBUTE);
		if (proxyTargetClass && (language == null || !language.equals("groovy"))) {
			throw new BeanDefinitionValidationException(
					"Cannot use proxyTargetClass=true with script beans where language is not 'groovy': '" +
					language + "'");
		}
		ts.setRefreshCheckDelay(refreshCheckDelay);
		return createRefreshableProxy(ts, interfaces, proxyTargetClass);
	}

	if (isFactoryBean) {
		scriptedObjectBeanName = BeanFactory.FACTORY_BEAN_PREFIX + scriptedObjectBeanName;
	}
	return this.scriptBeanFactory.getBean(scriptedObjectBeanName);
}
 
开发者ID:lamsfoundation,项目名称:lams,代码行数:49,代码来源:ScriptFactoryPostProcessor.java

示例6: getBeanClass

import org.springframework.beans.factory.support.BeanDefinitionValidationException; //导入依赖的package包/类
/**
 * Try to obtain the actual bean class of the bean with given name.
 * @param beanName Bean name
 * @param beanDefinition Optional bean definition
 * @param beanFactory Bean factory (not null)
 * @param classLoader ClassLoader to use
 * @return The bean class, or <code>null</code> if cannot be detected
 */
public static Class<?> getBeanClass(String beanName, BeanDefinition beanDefinition,
		ConfigurableListableBeanFactory beanFactory, ClassLoader classLoader) {

	ObjectUtils.argumentNotNull(beanFactory, "Bean factory must be not null");

	BeanDefinition definition = beanDefinition;
	if (definition == null && beanName != null) {
		definition = beanFactory.getBeanDefinition(beanName);
	}

	if (definition == null) {
		throw new BeanDefinitionValidationException("Missing bean definition for bean name [" + beanName + "]");
	}

	// check Root definition
	if (definition instanceof RootBeanDefinition) {
		RootBeanDefinition rootBeanDef = (RootBeanDefinition) definition;
		try {
			if (rootBeanDef.getBeanClass() != null) {
				return rootBeanDef.getBeanClass();
			}
		} catch (@SuppressWarnings("unused") IllegalStateException e) {
			// factory bean: ignore
		}
	}

	// Check factory bean
	if (definition.getFactoryMethodName() == null) {
		// factory class
		if (definition.getBeanClassName() != null) {
			return getBeanClass(beanName, definition.getBeanClassName(), classLoader);
		}
	} else {
		// factory method
		String factoryClassName = getBeanFactoryClassName(definition, beanFactory);
		if (factoryClassName != null) {
			Class<?> factoryClass = getBeanClass(beanName, factoryClassName, classLoader);
			if (factoryClass != null) {
				for (Method method : factoryClass.getMethods()) {
					if (method.getName().equals(definition.getFactoryMethodName())) {
						return method.getReturnType();
					}
				}
			}
		}
	}

	// check beans defined using @Configuration
	Object source = definition.getSource();
	if (source instanceof StandardMethodMetadata) {
		StandardMethodMetadata metadata = (StandardMethodMetadata) source;
		return metadata.getIntrospectedMethod().getReturnType();
	}

	return null;

}
 
开发者ID:holon-platform,项目名称:holon-core,代码行数:66,代码来源:BeanRegistryUtils.java

示例7: postProcessBeforeInstantiation

import org.springframework.beans.factory.support.BeanDefinitionValidationException; //导入依赖的package包/类
@SuppressWarnings("rawtypes")
   @Override
   public Object postProcessBeforeInstantiation(Class beanClass, String beanName) {
// We only apply special treatment to ScriptFactory implementations
// here.
if (!ScriptFactory.class.isAssignableFrom(beanClass)) {
    return null;
}

BeanDefinition bd = this.beanFactory.getMergedBeanDefinition(beanName);
String scriptFactoryBeanName = SCRIPT_FACTORY_NAME_PREFIX + beanName;
String scriptedObjectBeanName = SCRIPTED_OBJECT_NAME_PREFIX + beanName;
prepareScriptBeans(bd, scriptFactoryBeanName, scriptedObjectBeanName);

ScriptFactory scriptFactory = this.scriptBeanFactory.getBean(scriptFactoryBeanName, ScriptFactory.class);
ScriptSource scriptSource = getScriptSource(scriptFactoryBeanName, scriptFactory.getScriptSourceLocator());
boolean isFactoryBean = false;
try {
    Class<?> scriptedObjectType = scriptFactory.getScriptedObjectType(scriptSource);
    // Returned type may be null if the factory is unable to determine
    // the type.
    if (scriptedObjectType != null) {
	isFactoryBean = FactoryBean.class.isAssignableFrom(scriptedObjectType);
    }
} catch (Exception ex) {
    throw new BeanCreationException(beanName, "Could not determine scripted object type for " + scriptFactory,
	    ex);
}

long refreshCheckDelay = resolveRefreshCheckDelay(bd);
if (refreshCheckDelay >= 0) {
    Class<?>[] interfaces = scriptFactory.getScriptInterfaces();
    RefreshableScriptTargetSource ts = new RefreshableScriptTargetSource(this.scriptBeanFactory,
	    scriptedObjectBeanName, scriptFactory, scriptSource, isFactoryBean);
    boolean proxyTargetClass = resolveProxyTargetClass(bd);
    String language = (String) bd.getAttribute(LANGUAGE_ATTRIBUTE);
    if (proxyTargetClass && (language == null || !language.equals("groovy"))) {
	throw new BeanDefinitionValidationException(
		"Cannot use proxyTargetClass=true with script beans where language is not 'groovy': '"
			+ language + "'");
    }
    ts.setRefreshCheckDelay(refreshCheckDelay);
    return createRefreshableProxy(ts, interfaces, proxyTargetClass);
}

if (isFactoryBean) {
    scriptedObjectBeanName = BeanFactory.FACTORY_BEAN_PREFIX + scriptedObjectBeanName;
}
return this.scriptBeanFactory.getBean(scriptedObjectBeanName);
   }
 
开发者ID:ilivoo,项目名称:game,代码行数:51,代码来源:MyScriptFactoryPostProcessor.java

示例8: postProcessBeforeInstantiation

import org.springframework.beans.factory.support.BeanDefinitionValidationException; //导入依赖的package包/类
@Override
public Object postProcessBeforeInstantiation(Class<?> beanClass, String beanName) {
	// We only apply special treatment to ScriptFactory implementations here.
	if (!ScriptFactory.class.isAssignableFrom(beanClass)) {
		return null;
	}

	BeanDefinition bd = this.beanFactory.getMergedBeanDefinition(beanName);
	String scriptFactoryBeanName = SCRIPT_FACTORY_NAME_PREFIX + beanName;
	String scriptedObjectBeanName = SCRIPTED_OBJECT_NAME_PREFIX + beanName;
	prepareScriptBeans(bd, scriptFactoryBeanName, scriptedObjectBeanName);

	ScriptFactory scriptFactory = this.scriptBeanFactory.getBean(scriptFactoryBeanName, ScriptFactory.class);
	ScriptSource scriptSource = getScriptSource(scriptFactoryBeanName, scriptFactory.getScriptSourceLocator());
	boolean isFactoryBean = false;
	try {
		Class<?> scriptedObjectType = scriptFactory.getScriptedObjectType(scriptSource);
		// Returned type may be null if the factory is unable to determine the type.
		if (scriptedObjectType != null) {
			isFactoryBean = FactoryBean.class.isAssignableFrom(scriptedObjectType);
		}
	}
	catch (Exception ex) {
		throw new BeanCreationException(beanName,
				"Could not determine scripted object type for " + scriptFactory, ex);
	}

	long refreshCheckDelay = resolveRefreshCheckDelay(bd);
	if (refreshCheckDelay >= 0) {
		Class<?>[] interfaces = scriptFactory.getScriptInterfaces();
		RefreshableScriptTargetSource ts = new RefreshableScriptTargetSource(this.scriptBeanFactory,
				scriptedObjectBeanName, scriptFactory, scriptSource, isFactoryBean);
		boolean proxyTargetClass = resolveProxyTargetClass(bd);
		String language = (String) bd.getAttribute(LANGUAGE_ATTRIBUTE);
		if (proxyTargetClass && (language == null || !language.equals("groovy"))) {
			throw new BeanDefinitionValidationException(
					"Cannot use proxyTargetClass=true with script beans where language is not 'groovy': '" +
							language + "'");
		}
		ts.setRefreshCheckDelay(refreshCheckDelay);
		return createRefreshableProxy(ts, interfaces, proxyTargetClass);
	}

	if (isFactoryBean) {
		scriptedObjectBeanName = BeanFactory.FACTORY_BEAN_PREFIX + scriptedObjectBeanName;
	}
	return this.scriptBeanFactory.getBean(scriptedObjectBeanName);
}
 
开发者ID:deathspeeder,项目名称:class-guard,代码行数:49,代码来源:ScriptFactoryPostProcessor.java

示例9: analyzeDependencies

import org.springframework.beans.factory.support.BeanDefinitionValidationException; //导入依赖的package包/类
@Override
protected List<String> analyzeDependencies(List<String> configLocations) throws Exception {
    ContextAnalyzer analyzer = new ContextAnalyzer();
    List<Exception> exceptions = new LinkedList<>();

    List<String> limitedLocations = new ArrayList<>();
    for (String loc : configLocations) {
        BeanDefinitionRegistry beanFactory = getBeanFactory(loc);

        String[] beanNames = beanFactory.getBeanDefinitionNames();
        for (String beanName : beanNames) {
            BeanDefinition beanDefinition = beanFactory.getBeanDefinition(beanName);
            try {
                if (isExport(beanDefinition)) {
                    analyzer.addExport(beanDefinition);
                    if (checkForRunOnly(beanName)) {
                        limitedLocations.add(loc);
                    }
                } else if (isImport(beanDefinition)) {
                    analyzer.addImport(beanDefinition);
                } else if (beanDefinition.getBeanClassName() != null) {
                    checkClassExist(loc, beanName, beanDefinition.getBeanClassName());
                }
            } catch (Exception ex) {
                exceptions.add(ex);
            }
        }
    }

    analyzer.areThereExportsWithoutImport();

    if (analyzer.areThereImportsWithoutExports() || !analyzer.areImportsTypesCorrect()) {
        exceptions.add(new BeanDefinitionValidationException(
                "There are severe errors while parsing contexts. See logs for details"));
    }
    
    if (!exceptions.isEmpty()) {
        for (Exception exception : exceptions) {
            log.error(exception.getMessage());
        }
        throw exceptions.get(0);
    }

    DependencySorter sorter = new DependencySorter(configLocations.toArray(new String[0]), analyzer.getImports(), analyzer.getExports());
    sorter.setProhibitCycles(prohibitCycles);

    locationsGraph = new LocationsGraph(analyzer.getImports(), analyzer.getExports());
    List<String> analyzedConfigLocations = locationsGraph.filterConfigLocations(limitedLocations, sorter.sort());

    log.info("ordered list of the contexts: {}", analyzedConfigLocations);

    return analyzedConfigLocations;
}
 
开发者ID:jirutka,项目名称:spring-modular,代码行数:54,代码来源:StrictContextParentBean.java


注:本文中的org.springframework.beans.factory.support.BeanDefinitionValidationException类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。