2011-03-02 100 views
1

我在使用Jboss 5.1GA配置RestEasy時遇到了麻煩。我所做的一切,安裝手冊說的事,基本上下載的ZIP RestEasy的,lib文件夾中複製了所有的罐子我的戰爭,可以這樣來配置web.xml中:配置RestEasy時ClassNotFound異常

<listener> 
<listener-class> 
org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap 
</listener-class> 
</listener> 

<servlet> 
<servlet-name>Resteasy</servlet-name> 
<servlet-class> 
org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher 
</servlet-class> 
<init-param> 

<param-name>javax.ws.rs.Application</param-name> 
<param-value>com.base.BaseApplication</param-value> 
</init-param> 

我的應用程序類的樣子這個:

public class BaseApplication { 
private Set<Object> singletons = new HashSet(); 
private Set<Class<?>> empty = new HashSet(); 

public BaseApplication() { 

// ADD YOUR RESTFUL RESOURCES HERE 
    singletons.add(new QuoteResource()); 
} 

public Set<Class<?>> getClasses() 
{ 
return this.empty; 
} 

public Set<Object> getSingletons() 
{ 
return this.singletons; 
} 
} 

同樣的配置在JBoss 4.2.3GA上工作正常,但是當部署到JBoss 5.1時,我得到了下面的異常。我無法弄清楚爲什麼RestEasy試圖實現Jboss 5.1.0不具備的CDI類。

14:50:41,547 ERROR [AbstractKernelController] Error installing to PreReal: name=vfszip:/C:/Java/servers/jboss-5.1.0.GA/server/club-demo/deploy/club-demo-internet.war/ state=PostClassLoader mode=Manual requiredState=PreReal 
org.jboss.deployers.spi.DeploymentException: Error during deploy: vfszip:/C:/Java/servers/jboss-5.1.0.GA/server/club-demo/deploy/club-demo-internet.war/ 
at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49) 
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:177) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098) 
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781) 
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:702) 
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117) 
at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70) 
at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53) 
at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:361) 
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1631) 
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934) 
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984) 
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822) 
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553) 
at org.jboss.system.server.profileservice.repository.AbstractProfileService.activateProfile(AbstractProfileService.java:306) 
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:271) 
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461) 
at org.jboss.Main.boot(Main.java:221) 
at org.jboss.Main$1.run(Main.java:556) 
at java.lang.Thread.run(Thread.java:662) 
**Caused by: java.lang.NoClassDefFoundError: javax/enterprise/inject/spi/AnnotatedType** 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
at org.jboss.classloader.spi.base.BaseClassLoader.access$200(BaseClassLoader.java:63) 
at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:572) 
at org.jboss.classloader.spi.base.BaseClassLoader$2.run(BaseClassLoader.java:532) 
at java.security.AccessController.doPrivileged(Native Method) 
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:530) 
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassLocally(BaseClassLoader.java:507) 
at org.jboss.classloader.spi.base.BaseDelegateLoader.loadClass(BaseDelegateLoader.java:134) 
at org.jboss.classloader.spi.filter.FilteredDelegateLoader.loadClass(FilteredDelegateLoader.java:131) 
at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:452) 
at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:251) 
at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:150) 
at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:265) 
at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1119) 
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:798) 
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:441) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
at org.jboss.classloading.plugins.visitor.AbstractResourceContext.loadClass(AbstractResourceContext.java:118) 
at org.jboss.webbeans.integration.deployer.env.WebBeanDiscoveryDeployer$WBDiscoveryVisitor.visit(WebBeanDiscoveryDeployer.java:134) 
at org.jboss.classloading.plugins.vfs.VFSResourceVisitor.visit(VFSResourceVisitor.java:264) 
at org.jboss.virtual.plugins.vfs.helpers.WrappingVirtualFileHandlerVisitor.visit(WrappingVirtualFileHandlerVisitor.java:62) 
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:361) 
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:376) 
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:376) 
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:376) 
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:306) 
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:374) 
at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:306) 
at org.jboss.virtual.VFS.visit(VFS.java:421) 
at org.jboss.virtual.VirtualFile.visit(VirtualFile.java:437) 
at org.jboss.classloading.plugins.vfs.VFSResourceVisitor.visit(VFSResourceVisitor.java:101) 
at org.jboss.deployers.vfs.plugins.classloader.VFSDeploymentClassLoaderPolicyModule.visit(VFSDeploymentClassLoaderPolicyModule.java:160) 
at org.jboss.webbeans.integration.deployer.env.WebBeanDiscoveryDeployer.deploy(WebBeanDiscoveryDeployer.java:109) 
at org.jboss.webbeans.integration.deployer.env.WebBeanDiscoveryDeployer.deploy(WebBeanDiscoveryDeployer.java:45) 
at org.jboss.deployers.vfs.spi.deployer.AbstractOptionalVFSRealDeployer.deploy(AbstractOptionalVFSRealDeployer.java:57) 
at org.jboss.deployers.spi.deployer.helpers.AbstractOptionalRealDeployer.internalDeploy(AbstractOptionalRealDeployer.java:74) 
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50) 
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171) 
... 29 more 
**Caused by: java.lang.ClassNotFoundException: javax.enterprise.inject.spi.AnnotatedType** 
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:307) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:292) 
at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1119) 
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:798) 
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:441) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
... 69 more 

請建議我做錯了什麼?非常感謝。

回答

1

沒關係,只是刪除了resteasy-cdi-2.1.0.GA.jar並且問題消失了,我只希望這個jar在將來不會引起我的問​​題。

+1

您應該將此答案勾選爲已接受的答案。 – 2011-04-21 19:59:17

+1

你必須等待至少2天才能接受你自己的問題答案。 – Fabian 2012-03-20 12:42:29

0

這是一個已知的錯誤。您必須在您的Maven依賴項中包含javax.inject:

<dependency> 
    <groupId>javax.inject</groupId> 
    <artifactId>javax.inject</artifactId> 
    <version>1</version> 
    <scope>test</scope> 
</dependency> 

測試作用域是可選的。

查看https://issues.jboss.org/browse/ARQ-157瞭解更多信息。