项目启动异常:
开始感觉是Jar包版本问题,降版本,还是不行org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.springframework.validation.beanvalidation.LocalValidatorFactoryBean] for bean with name 'validator' defined in URL [bundleentry://148.fwk3119471/config/bean-mvc.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1265)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1331)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:317)
at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:185)
at org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.findAdvisorBeans(BeanFactoryAdvisorRetrievalHelper.java:73)
at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:100)
at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.findCandidateAdvisors(AnnotationAwareAspectJAutoProxyCreator.java:84)
at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.shouldSkip(AspectJAwareAdvisorAutoProxyCreator.java:107)
at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:278)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:880)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:852)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:446)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at com.sgcc.uap.kernel.spring.AppContextLoader$3.call(AppContextLoader.java:331)
at com.sgcc.uap.kernel.spring.AppContextLoader$3.call(AppContextLoader.java:302)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)
at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)
at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:454)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:326)
at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:231)
at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1193)
at com.sgcc.uap.kernel.classloader.ModuleDelegatingClassLoader.findClass(ModuleDelegatingClassLoader.java:138)
at com.sgcc.uap.kernel.classloader.ModuleDelegatingClassLoader.loadClass(ModuleDelegatingClassLoader.java:246)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:258)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:417)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1283)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1254)
... 26 more
Caused by: java.lang.ClassNotFoundException: javax.validation.ValidatorFactory
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
... 52 more
lib下加入的jar:
 lib/classmate-1.0.0.jar,
 lib/jboss-logging-3.1.3.GA.jar,
 lib/hibernate-validator-4.2.0.Final.jar,
 lib/validation-api-1.0.0.GA.jar
xml文件配置:
  <mvc:annotation-driven  validator="validator">
        <mvc:message-converters>  
        <bean class="com.sgcc.vuln2.core.converter.SimpleMappingJacksonHttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>*/*</value>
            </list>
        </property>
        </bean>  
    </mvc:message-converters>  
    </mvc:annotation-driven>
       <!-- 以下 validator ConversionService 在使用 mvc:annotation-driven 会 自动注册 -->
    <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
        <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
        <!-- 如果不加默认到 使用classpath下的 ValidationMessages.properties -->
        <property name="validationMessageSource" ref="reloadMessageSource"/>
    </bean>
     <!-- 国际化的消息资源文件(本系统中主要用于显示/错误消息定制) -->
    <bean id="reloadMessageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <!-- 在web环境中一定要定位到classpath 否则默认到当前web应用下找 -->
                <value>classpath:messages</value>
                <value>classpath:org/hibernate/validator/ValidationMessages</value>
            </list>
        </property>
        <property name="useCodeAsDefaultMessage" value="false"/>
        <property name="defaultEncoding" value="UTF-8"/>
        <property name="cacheSeconds" value="60"/>
    </bean>

解决方案 »

  1.   

    <br data-filtered="filtered">
    org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.springframework.validation.beanvalidation.LocalValidatorFactoryBean] for bean with name 'validator' defined in URL [bundleentry://148.fwk3119471/config/bean-mvc.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1265)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:576)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1331)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanNamesForType(DefaultListableBeanFactory.java:317)<br data-filtered="filtered">
    at org.springframework.beans.factory.BeanFactoryUtils.beanNamesForTypeIncludingAncestors(BeanFactoryUtils.java:185)<br data-filtered="filtered">
    at org.springframework.aop.framework.autoproxy.BeanFactoryAdvisorRetrievalHelper.findAdvisorBeans(BeanFactoryAdvisorRetrievalHelper.java:73)<br data-filtered="filtered">
    at org.springframework.aop.framework.autoproxy.AbstractAdvisorAutoProxyCreator.findCandidateAdvisors(AbstractAdvisorAutoProxyCreator.java:100)<br data-filtered="filtered">
    at org.springframework.aop.aspectj.annotation.AnnotationAwareAspectJAutoProxyCreator.findCandidateAdvisors(AnnotationAwareAspectJAutoProxyCreator.java:84)<br data-filtered="filtered">
    at org.springframework.aop.aspectj.autoproxy.AspectJAwareAdvisorAutoProxyCreator.shouldSkip(AspectJAwareAdvisorAutoProxyCreator.java:107)<br data-filtered="filtered">
    at org.springframework.aop.framework.autoproxy.AbstractAutoProxyCreator.postProcessBeforeInstantiation(AbstractAutoProxyCreator.java:278)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:880)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.resolveBeforeInstantiation(AbstractAutowireCapableBeanFactory.java:852)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:446)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)<br data-filtered="filtered">
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)<br data-filtered="filtered">
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)<br data-filtered="filtered">
    at com.sgcc.uap.kernel.spring.AppContextLoader$3.call(AppContextLoader.java:331)<br data-filtered="filtered">
    at com.sgcc.uap.kernel.spring.AppContextLoader$3.call(AppContextLoader.java:302)<br data-filtered="filtered">
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)<br data-filtered="filtered">
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)<br data-filtered="filtered">
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)<br data-filtered="filtered">
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)<br data-filtered="filtered">
    at java.lang.Thread.run(Thread.java:619)<br data-filtered="filtered">
    Caused by: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory<br data-filtered="filtered">
    at java.lang.ClassLoader.defineClass1(Native Method)<br data-filtered="filtered">
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.defineClass(DefaultClassLoader.java:183)<br data-filtered="filtered">
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.defineClass(ClasspathManager.java:576)<br data-filtered="filtered">
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findClassImpl(ClasspathManager.java:546)<br data-filtered="filtered">
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClassImpl(ClasspathManager.java:477)<br data-filtered="filtered">
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass_LockClassLoader(ClasspathManager.java:465)<br data-filtered="filtered">
    at org.eclipse.osgi.baseadaptor.loader.ClasspathManager.findLocalClass(ClasspathManager.java:445)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.findLocalClass(DefaultClassLoader.java:211)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:381)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.loader.SingleSourcePackage.loadClass(SingleSourcePackage.java:33)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:454)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)<br data-filtered="filtered">
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.loader.BundleLoader.loadClass(BundleLoader.java:326)<br data-filtered="filtered">
    at org.eclipse.osgi.framework.internal.core.BundleHost.loadClass(BundleHost.java:231)<br data-filtered="filtered">
    at org.eclipse.osgi.framework.internal.core.AbstractBundle.loadClass(AbstractBundle.java:1193)<br data-filtered="filtered">
    at com.sgcc.uap.kernel.classloader.ModuleDelegatingClassLoader.findClass(ModuleDelegatingClassLoader.java:138)<br data-filtered="filtered">
    at com.sgcc.uap.kernel.classloader.ModuleDelegatingClassLoader.loadClass(ModuleDelegatingClassLoader.java:246)<br data-filtered="filtered">
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)<br data-filtered="filtered">
    at org.springframework.util.ClassUtils.forName(ClassUtils.java:258)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:417)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1283)<br data-filtered="filtered">
    at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1254)<br data-filtered="filtered">
    ... 26 more<br data-filtered="filtered">
    Caused by: java.lang.ClassNotFoundException: javax.validation.ValidatorFactory<br data-filtered="filtered">
    at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:494)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:410)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:398)<br data-filtered="filtered">
    at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:105)<br data-filtered="filtered">
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)<br data-filtered="filtered">
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)<br data-filtered="filtered">
    ... 52 more
      

  2.   

    javax.validation.ValidatorFactory  找不到额。
    要么jar多了冲突了,要么是真的没有这个包