2012-01-08 11 views
5

Sto cercando di far funzionare un semplice progetto RestEasy in Eclipse (con Jboss Tools) e Jboss 5.1.0 . Per andare avanti, ho creato un semplice progetto Web dinamico. Nel progetto, ho includere quanto segue nel WEB-INF/web.xml:Ottenere "java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet" in Eclipse + jboss 5.1.0

<context-param> 
    <param-name>resteasy.scan</param-name> 
    <param-value>true</param-value> 
</context-param> 
<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> 
</servlet> 

<servlet-mapping> 
    <servlet-name>Resteasy</servlet-name> 
    <url-pattern>/*</url-pattern> 
</servlet-mapping> 

Per cercare di avviare il progetto di cui sopra (in Jboss esecuzione in Eclipse), ottengo la seguente eccezione nella console:

14:10:17,614 ERROR [AbstractKernelController] Error installing to Real: name=vfsfile:/Users/groove/Documents/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1326046666357/deploy/blankWeb.war/ state=PreReal mode=Manual requiredState=Real 
org.jboss.deployers.spi.DeploymentException: Error during deploy: vfsfile:/Users/groove/Documents/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1326046666357/deploy/blankWeb.war/ 
at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49) 
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:185) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1454) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1172) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1113) 
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348) 
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652) 
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938) 
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082) 
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988) 
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:826) 
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:789) 
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:699) 
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117) 
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:409) 
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:294) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) 
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:680) 
Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet 
at java.lang.ClassLoader.defineClass1(Native Method) 
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:295) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
at java.lang.Class.forName0(Native Method) 
at java.lang.Class.forName(Class.java:247) 
at org.jboss.classloader.plugins.loader.ClassLoaderToLoaderAdapter.loadClass(ClassLoaderToLoaderAdapter.java:188) 
at org.jboss.classloader.spi.base.ClassLoadingTask$ThreadTask.run(ClassLoadingTask.java:455) 
at org.jboss.classloader.spi.base.ClassLoaderManager.nextTask(ClassLoaderManager.java:267) 
at org.jboss.classloader.spi.base.ClassLoaderManager.process(ClassLoaderManager.java:166) 
at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:276) 
at org.jboss.classloader.spi.base.BaseClassLoaderDomain.loadClass(BaseClassLoaderDomain.java:1138) 
at org.jboss.classloader.spi.base.BaseClassLoader.loadClassFromDomain(BaseClassLoader.java:862) 
at org.jboss.classloader.spi.base.BaseClassLoader.doLoadClass(BaseClassLoader.java:502) 
at org.jboss.classloader.spi.base.BaseClassLoader.loadClass(BaseClassLoader.java:447) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
at org.jboss.webservices.integration.util.ASHelper.getEndpointClass(ASHelper.java:295) 
at org.jboss.webservices.integration.util.ASHelper.getWebServiceServlets(ASHelper.java:398) 
at org.jboss.webservices.integration.util.ASHelper.getJaxwsServlets(ASHelper.java:194) 
at org.jboss.webservices.integration.deployers.WSTypeDeployer.isJaxwsJseDeployment(WSTypeDeployer.java:153) 
at org.jboss.webservices.integration.deployers.WSTypeDeployer.internalDeploy(WSTypeDeployer.java:68) 
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55) 
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179) 
... 24 more 
Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet 
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:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
... 56 more 
14:10:17,632 WARN [HDScanner] Failed to process changes 
org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS): 

*** DEPLOYMENTS IN ERROR: Name -> Error 

vfsfile:/Users/groove/Documents/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1326046666357/deploy/blankWeb.war/ -> org.jboss.deployers.spi.DeploymentException: Error during deploy: vfsfile:/Users/gnarula1/Documents/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1326046666357/deploy/blankWeb.war/ 


DEPLOYMENTS IN ERROR: 
Deployment "vfsfile:/Users/groove/Documents/workspace/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_5.1_Runtime_Server1326046666357/deploy/blankWeb.war/" is in error due to the following reason(s): java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet 

at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:1008) 
at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:954) 
at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:870) 
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.checkComplete(MainDeployerAdapter.java:128) 
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:416) 
at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:294) 
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) 
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) 
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) 
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) 
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
at java.lang.Thread.run(Thread.java:680) 

Che cosa potrebbe causare questo errore?

Grazie in anticipo.

risposta

3

Primo di RestEasy è supportato solo dalla versione 6 di JBoss IIRC.

Ecco un collegamento al resto sito Web facile se è necessario scaricarlo. http://www.jboss.org/resteasy

  1. I make the assumption that you allready have a Preferences>Server>Runtime Environment> configured for JBoss. If not do that first.

  2. Caused by: java.lang.NoClassDefFoundError: javax/servlet/http/HttpServlet. This tells me that if you got 1 above right you have not added it to your buildpath yet as Properties>Java Build Path>Add Library>Server Runtime. The runtime contains the servletapi.

  3. org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap lives in the resteasy-jaxrs-2.3.0.GA.jar jar. Dump it in your WEB_INF/lib folder. DO NOT add it to your build path via Eclipse. Eclipse takes care of that it self.

  4. org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher. Same as 3 above.

  5. <param-name>resteasy.scan</param-name> This functionality I believe is a runtime dependency and lives in the scannotation-1.0.3.jar. Dump it in WEB_INF/lib. Again, Eclipse takes care of the classpath.

  6. This is after all a JAX-RS project so dump jaxrs-api-2.3.0.GA.jar to your in WEB_INF/lib. This will bring in the @Path, @Get, etc annotations for use in your resource classes.

  7. I also have jaxb-api-2.2.3.jar, javassist-3.8.0.GA.jar and jackson-jaxrs-1.8.5.jar in my WEB-INF/lib but from here on out it depends what functionality you are going to use and which providers loggers etc.


spero ho inchiodato i vasetti essenziali, se qualcuno ha visto perdere un uno si prega di correggere. Il mio primo tentativo a JAX-RS Ho appena scaricato l'intera shebang di 56 vasi in WEB-INF/lib (non è una buona idea)

Buon divertimento !!

Problemi correlati