我想知道为什么我的应用程序会抛出此错误:
[ERROR] java.lang.NoClassDefFoundError: javax/validation/Validator [ERROR] at java.lang.ClassLoader.defineClass1(Native Method) [ERROR] at java.lang.ClassLoader.defineClass(ClassLoader.java:800) [ERROR] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [ERROR] at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) [ERROR] at java.net.URLClassLoader.access$100(URLClassLoader.java:71) [ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:361) [ERROR] at java.net.URLClassLoader$1.run(URLClassLoader.java:355) [ERROR] at java.security.AccessController.doPrivileged(Native Method) [ERROR] at java.net.URLClassLoader.findClass(URLClassLoader.java:354) [ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:425) [ERROR] at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:215) [ERROR] at java.lang.ClassLoader.loadClass(ClassLoader.java:358) [ERROR] at org.jboss.resteasy.core.ResourceMethod.(ResourceMethod.java:162) [ERROR] at org.jboss.resteasy.core.ResourceMethodRegistry.processMethod(ResourceMethodRegistry.java:280) [ERROR] at org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:129) [ERROR] at org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:111) [ERROR] at org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:88) [ERROR] at org.jboss.resteasy.plugins.guice.ModuleProcessor.processInjector(ModuleProcessor.java:66) [ERROR] at org.jboss.resteasy.plugins.guice.ModuleProcessor.process(ModuleProcessor.java:45) [ERROR] at org.jboss.resteasy.plugins.guice.GuiceResteasyBootstrapServletContextListener.contextInitialized(GuiceResteasyBootstrapServletContextListener.java:31)
当它具有此依赖性时:
pom.xml
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
<classifier>sources</classifier>
<scope>provided</scope>
</dependency>
最佳答案
我对这个问题摸不着头脑,但我找到了一个适合我的解决方案。
从 JBOSS 文件夹(JBOSS 7 和 WildFly)打开standalone.xml(假设您处于独立模式)。路径应该类似于:
/{JBOSS_ROOT_FOLDER}/standalone/configuration/standalone.xml
在文件中,查找以下 XML 片段:
<subsystem xmlns="urn:jboss:domain:ee:2.0">
...
</subsystem>
中间会有各种 XML 配置。添加以下内容:
<global-modules>
<module name="{MODULE_NAME}" slot="main"/> <--- where {MODULE_NAME} is the name of your module
</global-modules>
显然,如果您已经有
请注意,“”中的版本 #2.0 特定于 WildFly (JBOSS 8)。 JBOSS 7 将/应该有一个较低的版本。
注意:您必须在 pom.xml 条目中保留
关于java.lang.NoClassDefFoundError : javax/validation/Validator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22625365/