Ich bin eine Web-Anwendung in Jboss Application Server laufen und ich versuche, eine Ereignisbasis Antwort vom Server zu implementieren.wait() auf Servlet wirft Exception
Um das zu erreichen, verwende ich .wait() und .notify() auf die Servlets-Klasse. Grundsätzlich gibt es eine Ajax-Anfrage, der Servlet blockt mit wait
bis ein Ereignis auf dem Server ist und wenn ja, wird notify
auf dem Servlet ausgelöst.
Das Problem ist, wenn ich warten Sie (1000 * 60) auf der Servlet ich:
Servlet.service() for servlet ProcessesServlet threw exception: java.lang.IllegalMonitorStateException
Ist es sogar möglich, eine wait() auf einer HttpServlet Klasse zu tun?
und ich muss das gleiche tun, bevor Sie benachrichtigen? –
[ja] (http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Object.html#notify()) –
es gibt etwas, das ich nicht bekomme ... wenn ich Übernimm den Besitz mit dem Thread, der .wait aufruft, indem du den synchronisierten Block verwendest, wie kann ich dann den Besitz auf den Thread übernehmen, der .notify aufrufen wird. Ich meine, der erste synchronisierte Block wurde wegen der Warte-Anweisung nicht beendet ... richtig? Wird es keinen gegenseitigen Ausschluss geben? –