我想知道为什么我的应用会抛出此错误:
[ERROR] java.lang.NoClassDefFoundError:javax / validation / Validator java.lang.ClassLoader.defineClass1的[错误](本机方法)[错误] at java.lang.ClassLoader.defineClass(ClassLoader.java:800)[ERROR] 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) [错误]在 java.net.URLClassLoader.defineClass(URLClassLoader.java:449)[ERROR] 在java.net.URLClassLoader.access $ 100(URLClassLoader.java:71)[错误] at java.net.URLClassLoader $ 1.run(URLClassLoader.java:361)[ERROR] at java.net.URLClassLoader $ 1.run(URLClassLoader.java:355)[错误] at java.security.AccessController.doPrivileged(Native Method)[ERROR] at java.net.URLClassLoader.findClass(URLClassLoader.java:354)[错误] at java.lang.ClassLoader.loadClass(ClassLoader.java:425)[ERROR] at com.google.appengine.tools.development.IsolatedAppClassLoader.loadClass(IsolatedAppClassLoader.java:215) java.lang.ClassLoader.loadClass的[错误](ClassLoader.java:358) [错误]在 org.jboss.resteasy.core.ResourceMethod。(ResourceMethod.java:162) [错误]在 org.jboss.resteasy.core.ResourceMethodRegistry.processMethod(ResourceMethodRegistry.java:280) [错误]在 org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:129) [错误]在 org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:111) [错误]在 org.jboss.resteasy.core.ResourceMethodRegistry.addResourceFactory(ResourceMethodRegistry.java:88) [错误]在 org.jboss.resteasy.plugins.guice.ModuleProcessor.processInjector(ModuleProcessor.java:66) [错误]在 org.jboss.resteasy.plugins.guice.ModuleProcessor.process(ModuleProcessor.java:45) [错误]在 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>
答案 0 :(得分:0)
我在这个问题上摸不着头脑,但我找到了一个适合我的解决方案。
从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>
显然,如果您已经有&lt; global-modules&gt; 部分,请不要添加两次,但请插入您要使用的模块。这是一个奇怪的事情,但这让我的WildFly运行。
请注意''中的版本#2.0特定于WildFly(JBOSS 8)。 JBOSS 7将/应该有一个较低的版本。
注意:您必须在pom.xml的条目中保留&lt; provided&gt; 。