На практике это может (вероятно) быть возможным, поскольку большинство серверов приложений не особенно строги и позволяют немного «растянуть» спецификацию J2EE.
Теоретически вы не можете гарантировать синглтон в приложении J2EE.Одна из проблем заключается в том, что ваше приложение может быть развернуто на нескольких виртуальных машинах в кластерной среде, но даже синглтон EJB (в EJB 3.1) даст вам один синглтон на одну виртуальную машину.Другая возможная проблема, даже при работе на одной виртуальной машине, заключается в том, что ваше приложение может быть приостановлено с состоянием, а затем перезапущено на другой виртуальной машине, например, после отскока сервера.В этом случае шаблон синглтона также будет нарушен.
Строго следуя J2EE, вам также не разрешается использовать синхронизированные операторы или другие блокировки потоков в вашем коде.Это может сделать невозможным гарантировать целостность в общей структуре данных.Если вы ограничите свое развертывание одной виртуальной машиной, вы не должны ожидать никаких других проблем или проблем, чем если бы вы выполняли тот же код в среде не Java EE.