Я пытаюсь реализовать Singleton в Tomcat 6.24 для Linux с x86_64 OpenJDK 1.6.
Мое приложение - это просто набор JSP и некоторый статический контент, и JSP выполняют вызовы моего Java-кода. В настоящее время web.xml выглядит так:
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
<description>
App Name
</description>
<display-name>App Name</display-name>
<!-- The Usual Welcome File List -->
<welcome-file-list>
<welcome-file>pages/index.jsp</welcome-file>
</welcome-file-list>
</web-app>
Раньше, когда я пытался загрузить мой Singleton, он дважды создавался, поскольку класс загружался двумя различными загрузчиками классов (я не уверен почему), и каждый загрузчик создавал экземпляр singleton, что неприемлемо для моего приложения. Наконец-то я понял, что если я экспортировал свой код в виде jar-файла и поместил его в $ CATALINA_HOME / lib, тогда был только один экземпляр, но это не элегантное решение.
Я часами гуглял, но пока ничего не придумал. Мне интересно, есть ли какое-то другое решение. В настоящее время я не выполняю предварительную компиляцию своих JSP, может ли это быть частью проблемы? Могу ли я написать сервлет, чтобы убедиться, что синглтон создан? Если да, то как мне это сделать?