Servlet上的wait()抛出异常

out*_*d3r 6 java events servlets

我在Jboss应用服务器上运行一个Web应用程序,我正在尝试从服务器实现事件库响应.

为了实现这一点,我在servlets类上使用了.wait()和.notify().基本上有一个Ajax请求,servlet wait一直阻塞,直到服务器上有一个事件,如果notify是这样,就会在servlet上触发.

问题是当我在Servlet上等待(1000*60)时,我得到:

Servlet.service() for servlet ProcessesServlet threw exception: java.lang.IllegalMonitorStateException
Run Code Online (Sandbox Code Playgroud)

甚至可以在HttpServlet类上执行wait()吗?

Den*_*ret 7

在等待对象之前,您必须拥有所有权.

这通常是使用synchronized语句完成的.

    synchronized (obj) {
        try {
            obj.wait(someTime);
        } catch (Throwable e) {
            e.printStackTrace();
        }
    }
Run Code Online (Sandbox Code Playgroud)