2012-01-08 31 views
5

Tôi đang cố gắng để có được một dự án RestEasy đơn giản để làm việc trong Eclipse (với Jboss Tools) và Jboss 5.1.0 . Để bắt đầu, tôi đã tạo một Dự án Web động đơn giản. Trong dự án này, tôi đã bao gồm trong WEB-INF/web.xml:Lấy "java.lang.ClassNotFoundException: javax.servlet.http.HttpServlet" trong 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> 

Mở cố gắng để bắt đầu dự án trên (trong Jboss chạy trong Eclipse), tôi nhận được ngoại lệ sau đây trong 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) 

Điều gì có thể gây ra lỗi này?

Xin cảm ơn trước.

Trả lời

3

Đầu tiên của RestEasy chỉ được hỗ trợ ra khỏi hộp từ phiên bản 6 của JBoss IIRC.

Có liên kết đến trang web dễ dàng còn lại nếu bạn cần tải xuống. 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.


Tôi hy vọng tôi đóng đinh các yếu tố cần thiết lọ, nếu có ai điểm một thiếu một hãy sửa lại. Lần thử đầu tiên của tôi tại JAX-RS Tôi vừa đổ hết toàn bộ shebang 56 lọ trong WEB-INF/lib (Không phải là ý tưởng hay)

Hãy vui vẻ !!

Các vấn đề liên quan