当我在JBoss AS 7中部署我的工作war文件时,出现以下异常:
11:59:11,090 警告 [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015893: 遇到无效的类名 'com.sun.jersey.server.impl.model.parameter.multivalued.StringReaderProviders$StringConstructor',服务类型为 'com.sun.jersey.spi.StringReaderProvider' 11:59:11,091 警告 [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015893: 遇到无效的类名 'com.sun.jersey.server.impl.model.parameter.multivalued.StringReaderProviders$DateProvider',服务类型为 'com.sun.jersey.spi.StringReaderProvider' 11:59:11,092 警告 [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015893: 遇到无效的类名 'com.sun.jersey.server.impl.model.parameter.multivalued.JAXBStringReaderProviders$RootElementProvider',服务类型为 'com.sun.jersey.spi.StringReaderProvider' 11:59:11,923 错误 [org.jboss.msc.service.fail] (MSC service thread 1-5) MSC00001: 服务 jboss.deployment.unit."myimpl.war".POST_MODULE 启动失败:org.jboss.msc.service.StartException in service jboss.deployment.unit."myimpl.war".POST_MODULE: Failed to process phase POST_MODULE of deployment "myimpl.war" at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_37] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_37] at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_37] Caused by: java.lang.NoClassDefFoundError: org/hibernate/exception/ConstraintViolationException at java.lang.Class.getDeclaredConstructors0(Native Method) [rt.jar:1.6.0_37] at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389) [rt.jar:1.6.0_37] at java.lang.Class.getConstructor0(Class.java:2699) [rt.jar:1.6.0_37] at java.lang.Class.getConstructor(Class.java:1657) [rt.jar:1.6.0_37] at org.jboss.as.web.deployment.jsf.JsfManagedBeanProcessor.deploy(JsfManagedBeanProcessor.java:108) at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final] ... 5 more Caused by: java.lang.ClassNotFoundException: org.hibernate.exception.ConstraintViolationException from [Module "deployment.myimpl.war:main" from Service Module Loader] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.1.1.GA] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120) [jboss-modules.jar:1.1.1.GA] ... 11 more 11:59:11,938 信息 [org.jboss.as] (MSC service thread 1-7我认为默认情况下,JBoss AS 7支持在启动时将Hibernate jars添加到类路径中(因为Hibernate模块已经可用于JBoss AS7)。我在hibernate-core-4.0.1.Final.jar(位于“modules \ org \ hibernate \ main”文件夹结构下)中找到了ConstraintViolationException类。那么为什么会出现NoClassDefFoundError错误?
请注意,我没有使用Maven进行依赖项解析。对于依赖项解析,我手动将jar文件放入了myimpl.war \ WEB-INF \ lib中。
无论如何,我在WEB-INF \ lib目录中添加了Hibernate的jar文件(hibernate3.jar)之后,出现了一些新的异常,看起来像是这样的:
12:51:19,146错误[org.jboss.msc.service.fail](MSC服务线程1-6):MSC00001:启动服务jboss.deployment.unit."myimpl.war".POST_MODULE失败:在部署“myimpl.war”的POST_MODULE阶段处理失败 在org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:119)[jboss-as-server-7.1.1.Final.jar:7.1.1.Final] 在org.jboss.msc.service.ServiceControllerImpl $ StartTask.startService(ServiceControllerImpl.java:1811)[jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在org.jboss.msc.service.ServiceControllerImpl $ StartTask.run(ServiceControllerImpl.java:1746)[jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在java.util.concurrent.ThreadPoolExecutor $ Worker.runTask(ThreadPoolExecutor.java:886)[rt.jar:1.6.0_37] 在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:908)[rt.jar:1.6.0_37] 在java.lang.Thread.run(Thread.java:662)[rt.jar:1.6.0_37] 由org.jboss.as.server.deployment.DeploymentUnitProcessingException引起:JBAS011232:只允许一个JAX-RS应用程序类。 com.sun.jersey.api.core.WebAppResourceConfig com.sun.jersey.api.core.ResourceConfig com.sun.jersey.api.core.ClassNamesResourceConfig com.sun.jersey.api.core.ScanningResourceConfig com.sun.jersey.api.core.ClasspathResourceConfig com.sun.jersey.api.core.DefaultResourceConfig com.sun.jersey.api.core.PackagesResourceConfig com.sun.jersey.server.impl.application.DeferredResourceConfig com.sun.jersey.api.core.ApplicationAdapter 在org.jboss.as.jaxrs.deployment.JaxrsScanningProcessor.scan(JaxrsScanningProcessor.java:209) 在org.jboss.as.jaxrs.deployment.JaxrsScanningProcessor.deploy(JaxrsScanningProcessor.java:105) 在org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113)[jboss-as-server-7.1.1.Final.jar:7.1.1.Final] ... 5 more
请简要介绍如何解决此问题。