java.lang.NoClassDefFoundError : javax/validation/Validator

标签 java validation maven

我想知道为什么我的应用程序会抛出此错误:

[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>

显然,如果您已经有 部分,请不要添加两次,但请插入您要使用的模块。这是一件奇怪的事情,但它让我的 WildFly 运行起来。

请注意,“”中的版本 #2.0 特定于 WildFly (JBOSS 8)。 JBOSS 7 将/应该有一个较低的版本。

注意:您必须在 pom.xml 条目中保留

关于java.lang.NoClassDefFoundError : javax/validation/Validator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22625365/

相关文章:

maven - 如何在Android Studio中将Azure存储库添加到Android项目中

Java:双字符的用途?

java - 当用户在 spring boot 应用程序中输入无效 URL 时如何显示自定义 404 页面?

javascript - 为什么 Mozilla 认为条件捕获 block 是非标准的?

HTML5 验证未触发

XML 模式导致没有 namespace 的 xml 元素

java -/bin 在 JDK 中丢失

spring - ${_csrf.parameterName} 和 ${_csrf.token} 返回 null

java - 如何将预训练的 tensorflow 模型加载并预测到Java代码中?

java - 如何为 try & catch 实现指数延迟/ sleep