2012-05-23 8 views
7

Ho seguito il tutorial http://wiki.eclipse.org/Jetty/Tutorial/Jetty_HelloWorld tutorial (con Eclipse). e ho anche guardato allo stackoverflow esistente hereClassNotFoundException: javax.servlet.AsyncContext in Jetty hello world in eclipse

Sto utilizzando il molo aggregato 8.0.0.jar e 8.1.3.jar insieme al servlet-api-2.5.jar. Ho aggiunto questi 2 jar al percorso della classe e ho incluso anche lo slf4j-simple-1.6.4.jar.

ancora sto ottenendo

`
2012-05-23 15: 23: 06,813: WARN: oeji.nio: java.lang.NoClassDefFoundError: javax/servlet/AsyncContext

at org.eclipse.jetty.server.HttpConnection.<init>(HttpConnection.java:155) 
at org.eclipse.jetty.server.AsyncHttpConnection.<init>(AsyncHttpConnection.java:19) 
at org.eclipse.jetty.server.nio.SelectChannelConnector$SelectChannelHttpConnection.<init>(SelectChannelConnector.java:309) 
at org.eclipse.jetty.server.nio.SelectChannelConnector$SelectChannelHttpConnection.<init>(SelectChannelConnector.java:303) 
at org.eclipse.jetty.server.nio.SelectChannelConnector.newConnection(SelectChannelConnector.java:286) 
at org.eclipse.jetty.server.nio.SelectChannelConnector$ConnectorSelectorManager.newConnection(SelectChannelConnector.java:364) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.<init>(SelectChannelEndPoint.java:71) 
at org.eclipse.jetty.server.nio.SelectChannelConnector.newEndPoint(SelectChannelConnector.java:274) 
at org.eclipse.jetty.server.nio.SelectChannelConnector$ConnectorSelectorManager.newEndPoint(SelectChannelConnector.java:370) 
at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.createEndPoint(SelectorManager.java:938) 
at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:497) 
at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:283) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) 
at java.lang.Thread.run(Thread.java:679) 

    Caused by: 
    java.lang.ClassNotFoundException: javax.servlet.AsyncContext 
at java.net.URLClassLoader$1.run(URLClassLoader.java:217) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:205) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:321) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:266) 
at org.eclipse.jetty.server.HttpConnection.<init>(HttpConnection.java:155) 
at org.eclipse.jetty.server.AsyncHttpConnection.<init>(AsyncHttpConnection.java:19) 
at org.eclipse.jetty.server.nio.SelectChannelConnector$SelectChannelHttpConnection.<init>(SelectChannelConnector.java:309) 
at org.eclipse.jetty.server.nio.SelectChannelConnector$SelectChannelHttpConnection.<init>(SelectChannelConnector.java:303) 
at org.eclipse.jetty.server.nio.SelectChannelConnector.newConnection(SelectChannelConnector.java:286) 
at org.eclipse.jetty.server.nio.SelectChannelConnector$ConnectorSelectorManager.newConnection(SelectChannelConnector.java:364) 
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.<init>(SelectChannelEndPoint.java:71) 
at org.eclipse.jetty.server.nio.SelectChannelConnector.newEndPoint(SelectChannelConnector.java:274) 
at org.eclipse.jetty.server.nio.SelectChannelConnector$ConnectorSelectorManager.newEndPoint(SelectChannelConnector.java:370) 
at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.createEndPoint(SelectorManager.java:938) 
at org.eclipse.jetty.io.nio.SelectorManager$SelectSet.doSelect(SelectorManager.java:497) 
at org.eclipse.jetty.io.nio.SelectorManager$1.run(SelectorManager.java:283) 
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:598) 
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:533) 
at java.lang.Thread.run(Thread.java:679) 

`

Qualche idea?

risposta

18

Penso che sia necessario il servlet api 3, non 2.5. AsyncContext è stato introdotto in Servlet 3.0, non esiste in 2.5.

+0

corretto, e si dovrebbe aggiornare anche a una versione più recente di jetty8, 8.1.3.v20120416 è solido –

+0

Servlet api 3.0 può essere scaricato da [qui] (http://download.oracle.com/otndocs/jcp/ servlet-3.0-fr-eval-oth-JSpec /) ** Modifica: ** Servlet api 3.0 risolve il problema come @Kai Sternad ha risposto. Per essere specifici riguardo alla fornitura del link, il motivo è stato perché la versione servlet-api-3.0-alpha-1 non risolve il problema. Tuttavia il collegamento per servlet api nelle [esercitazioni] (http://wiki.eclipse.org/Jetty/Tutorial/Jetty_HelloWorld) ha questa versione disponibile come ** ultimo ** download, che non contiene la classe [AsyncContext] (http://docs.oracle.com/javaee/6/api/javax/servlet/AsyncContext.html) e quindi doesn ' – mluthra