Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Eclipse调用异步java servlet时出错&;专家_Java_Eclipse_Maven_Servlets_Jetty - Fatal编程技术网

使用Eclipse调用异步java servlet时出错&;专家

使用Eclipse调用异步java servlet时出错&;专家,java,eclipse,maven,servlets,jetty,Java,Eclipse,Maven,Servlets,Jetty,我正在使用EclipseIDE处理servlet。我创建了一个maven项目来使用异步Servlet3.0,并为其添加了适当的依赖项。代码request.isAsyncSupported()返回true。现在,当我调用servlet时,它会给出以下错误 警告:oejs.ServletHandler:/testplugin/JsonServlet java.lang.IllegalStateException:已调度,初始 位于org.eclipse.jetty.server.Request.ge

我正在使用EclipseIDE处理servlet。我创建了一个maven项目来使用异步Servlet3.0,并为其添加了适当的依赖项。代码
request.isAsyncSupported()
返回true。现在,当我调用servlet时,它会给出以下错误

警告:oejs.ServletHandler:/testplugin/JsonServlet java.lang.IllegalStateException:已调度,初始 位于org.eclipse.jetty.server.Request.getAsyncContext(Request.java:325) 位于com.ajitpals.search.grid.fs.JsonServlet.doGet(JsonServlet.java:42) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:734) 位于javax.servlet.http.HttpServlet.service(HttpServlet.java:847) 位于org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594) 位于org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486) 位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119) 位于org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) 位于org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:233) 位于org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1065) 位于org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413) 位于org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:192) 位于org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:999) 位于org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117) 位于org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:111) 位于org.eclipse.jetty.server.server.handle(server.java:351) 位于org.eclipse.jetty.server.AbstractHttpConnection.HandlerRequest(AbstractHttpConnection.java:454) 位于org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:890) 位于org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:944) http.HttpParser.parseNext(HttpParser.java:634) http.HttpParser.parseAvailable(HttpParser.java:230) 位于org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:77) 位于org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:609) 位于org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:45) 位于org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:599) 位于org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:534) 位于java.lang.Thread.run(未知源)

我在maven项目中添加了以下依赖项

 <dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <version>3.1-b08</version>
</dependency>

<dependency>
    <groupId>org.eclipse.jetty</groupId>
    <artifactId>jetty-server</artifactId>
    <version>9.0.2.v20130417</version>
</dependency>

谢谢

这是代码错误,如果我们尝试在
请求之前获取
getAsyncRequest()
。startAsync()
将生成错误。

可能重复:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

    if(request.isAsyncSupported()){

    final AsyncContext asynCtx = request.getAsyncContext();

    //Set the timeout
    asynCtx.setTimeout(35000);

    //Add the listeners.
    asynCtx.addListener(new AsyncListener() {

        public void onTimeout(AsyncEvent arg0) throws IOException {
            System.out.println("timeout");              
        }

        public void onStartAsync(AsyncEvent arg0) throws IOException {
            System.out.println("on start");             
        }

        public void onError(AsyncEvent arg0) throws IOException {
            System.err.println("on error");             
        }

        public void onComplete(AsyncEvent arg0) throws IOException {
            System.out.println("On complete");              
        }
    });

    //start the new thread.
    asynCtx.start(new Runnable() {

        public void run() {
            try{
                asynCtx.getResponse().getWriter().write(MessageFormat.format("<h1>Process task id : [{0}] and Name [{1}]</h1>", 
                        Thread.currentThread().getId()));
            }catch(Exception ex){
                System.err.println("async error " + ex.getMessage());
            }
        }
    });
    }
}
PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required Caused by:org.apache.jasper.JasperException:PWC6345: There is an error in invoking javac. A full JDK (not just JRE) is required