Java 웹 응용 프로그램을 개발 중입니다. 응용 프로그램은 Lucene 색인에 연결됩니다. IndexSearcher의 싱글 톤 인스턴스를 만듭니다. 이 인스턴스는 일부 파일을 엽니 다. 웹 응용 프로그램을 재배포하면 IndexSearcher의 이전 인스턴스에서 열린 파일은 계속 열리고 다른 인스턴스는 재배포 된 응용 프로그램에서 만들어집니다. 몇 번 재배포하면 시스템은 "너무 많은 파일 열기"예외를 던지기 시작합니다. 다시 배포하기 전에 이전 인스턴스를 닫고 이전 파일을 닫을 수 있지만 그 작업을 수행 할 방법을 알 수는 없습니까? load-on-startup과 비슷한 un-deploy시 호출되는 web.xml의 지시문이 있습니까? jboss 서버에서 웹 응용 프로그램을 실행하고 있습니다.Java 웹 응용 프로그램에서 전개 취소 메소드 호출
8
A
답변
17
ServletContextListener
을 구현하십시오.
@WebListener
public class LuceneConfig implements ServletContextListener {
@Override
public void contextInitialized(ServletContextEvent event) {
// Do your job here during webapp startup.
}
@Override
public void contextDestroyed(ServletContextEvent event) {
// Do your job here during webapp shutdown.
}
}
당신은, 당신은 다음과 같이 @WebListener
주석을 제거하고 web.xml
에 수동으로 등록해야합니다 (하지만 2 년 밖에 이미) 아직 서블릿 3.0에없는 경우 :
<listener>
<listener-class>com.example.LuceneConfig</listener-class>
</listener>
2
javax.servlet.ServletContextListener
을 구현하고 해당 클래스를 에 <listener>
으로 등록하면 컨텍스트가 언로드되기 전에 contextDestroyed()
메서드가 호출됩니다.
관련 문제
- 1. 응용 프로그램에서 웹 서비스 호출 취소 중
- 2. 웹 응용 프로그램에서 Java Native Interface 호출
- 3. 웹 응용 프로그램에서 Axis 웹 서비스를 호출 할 수 없습니다.
- 4. Java 응용 프로그램에서 SOAP 호출
- 5. Java 응용 프로그램에서 Cygwin 호출
- 6. 내 웹 응용 프로그램에서 메소드 호출 된 메서드는 무엇입니까
- 7. Objective-C의 개별 응용 프로그램에서 메소드 호출
- 8. Java : 메소드 메인에있는 메소드 호출
- 9. 웹 응용 프로그램에서 winforms 호출
- 10. 웹 응용 프로그램에서 "삭제를 실행 취소 하시겠습니까?"
- 11. Android Java 메소드 호출
- 12. java : 메소드 호출
- 13. android 응용 프로그램에서 웹 서비스 호출
- 14. Eclipse 재배포/서버 재시작없이 웹 프로젝트 전개 취소
- 15. 다른 .net 웹 응용 프로그램에서 .NET 웹 응용 프로그램 호출
- 16. 비동기 웹 서비스 호출 취소
- 17. C 프로그램에서 Java 호출
- 18. struts 응용 프로그램에서 웹 서비스 호출
- 19. 웹 응용 프로그램에서 데이터베이스에 동적 호출
- 20. iOS 응용 프로그램에서 HTTPS 웹 서비스 호출
- 21. Silverlight 웹 응용 프로그램에서 C++ 코드 호출
- 22. 제한된 레이어의 Java 호출 메소드
- 23. Java threadsafe 순차 메소드 호출
- 24. Java 메소드 호출 과부하 논리
- 25. SOAP을 통한 Java Swing 응용 프로그램에서 .NET Web Service 호출
- 26. Java 웹 응용 프로그램에서 웹 서비스 호출을 조절하는 방법
- 27. .Net에서 Java 웹 서비스 호출
- 28. 응용 프로그램이 닫힐 때 메소드 호출
- 29. Java 응용 프로그램에서 웹 메서드를 호출하는 방법?
- 30. Java 웹 시작 응용 프로그램에서 값 반환
등록없이 바로 작동합니다. 페이 라라 4.1 (173 빌드)에 Mojarra 2.3.3 사용. – Roland
물론 정상적으로 작동합니다. Payara 4.x는 Servlet 3.1 기반입니다. 그렇다면'@WebListener'는 정상적으로 작동합니다. 응답으로, 아직 Servlet 3.0을 사용하지 않을 때는 작동하지 않습니다. JSF impl/version은 여기서 중요한 역할을하지 않으므로 관련이 없습니다. 서블릿 버전 만 관련됩니다. – BalusC
명확하게 해주셔서 감사합니다. – Roland