2014-10-29 514 views
1

我想通过Tomcat的在我的本地机器上运行一个Spring MVC应用程序,但我看到:ClassNotFoundException的:javax.validation.ValidatorFactory

NoClassDefFoundError: javax/validation/ValidatorFactory 

validation-api-1.0.0.GA.jar在Web应用程序的lib文件夹中。我正在使用Tomcat 7.任何指导将不胜感激。

org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from ServletContext resource [/WEB-INF/dispatcher-servlet.xml]; nested exception is java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209) 
    at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180) 
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:124) 
    at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:93) 
    at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130) 
    at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537) 
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451) 
    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:276) 
    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:197) 
    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47) 
    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4887) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5381) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559) 
    at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549) 
    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:662) 
Caused by: java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1629) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) 
    at org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser.getValidator(AnnotationDrivenBeanDefinitionParser.java:159) 
    at org.springframework.web.servlet.config.AnnotationDrivenBeanDefinitionParser.parse(AnnotationDrivenBeanDefinitionParser.java:106) 
    at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438) 
    at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:184) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:140) 
    at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:111) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493) 
    at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390) 
    ... 23 more 
Caused by: java.lang.ClassNotFoundException: javax.validation.ValidatorFactory 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

全套我使用的jar文件是

antlr-2.7.6.jar 
antlr-runtime-3.0.jar 
aopalliance-1.0.jar 
asm-3.3.1.jar 
aspectjrt.jar 
aspectjweaver-1.6.6.jar 
cglib-2.2.2.jar 
commons-beanutils-1.8.0.jar 
commons-collections-3.2.1.jar 
commons-digester-2.0.jar 
commons-lang-2.3.jar 
commons-logging-1.1.1.jar 
displaytag-1.2.jar 
dom.jar 
dom4j.jar 
hibernate-validator-4.2.0.Final.jar 
hibernate-validator-annotation-processor-4.2.0.Final.jar 
jackson-all-1.8.10.jar 
jaxp-api.jar 
jaxp-ri.jar 
jaxrpc.jar 
jdom.jar 
jstl-1.2.jar 
log4j-1.2.15.jar 
ojdbc6.jar 
org.springframework.aop-3.0.5.RELEASE.jar 
org.springframework.asm-3.0.5.RELEASE.jar 
org.springframework.aspects-3.0.5.RELEASE.jar 
org.springframework.beans-3.0.5.RELEASE.jar 
org.springframework.context-3.0.5.RELEASE.jar 
org.springframework.context.support-3.0.5.RELEASE.jar 
org.springframework.core-3.0.5.RELEASE.jar 
org.springframework.expression-3.0.5.RELEASE.jar 
org.springframework.jdbc-3.0.5.RELEASE.jar 
org.springframework.transaction-3.0.5.RELEASE.jar 
org.springframework.web-3.0.5.RELEASE.jar 
org.springframework.web.servlet-3.0.5.RELEASE.jar 
org.springframework.web.struts-3.0.5.RELEASE.jar 
sax.jar 
SecurityFilter.jar 
slf4j-api-1.6.4.jar 
slf4j-log4j12-1.6.4.jar 
tiles-api-2.2.2.jar 
tiles-core-2.2.2.jar 
tiles-extras-2.2.2.jar 
tiles-jsp-2.2.2.jar 
tiles-servlet-2.2.2.jar 
tiles-servlet-wildcard-2.2.2.jar 
tiles-template-2.2.2.jar 
validation-api-1.0.0.GA.jar 
+2

你有必要的jar文件,你需要在hibernate-validator中。这个jar包含validation-api。所以如果你明确包含validation-api,你可能会有依赖冲突。如果没有,你可能只是有类重新加载问题。尝试清理你的tomcat并重新启动你的IDE。 – Angad 2014-10-29 20:20:24

+0

是的,我这样做,它的工作。谢谢 – 2014-10-29 20:56:18

+0

如果有效,请接受正确的答案,以便其他人也可以从中学习。 – Ahmed 2016-01-12 19:41:12

回答

3

你有你在Hibernate验证器所需要的必要的jar文件。该jar包含javax.validation.ValidatorFactory validation-api。所以如果你明确包含validation-api,你可能会有依赖冲突。如果没有,你可能只是有类重新加载问题。尝试清理你的tomcat并重新启动你的IDE。

相关问题