Я реализовал прослушиватель сообщений в Liferay (CE 6.2.5 GA6) для асинхронного хранения созданных/обновленных DLFileEntries во внешней DMS (вызывая внешний WS для их хранения).Liferay messageener (message bus) classpath
Я создал файл JAR, содержащий интерфейс для моего класса WS, который находится в папке lib/ext tomcat.
У меня есть класс ServiceLocator в этом JAR-файле, который инициализируется в Spring-контексте моего webapp. Инициализация локатора службы, похоже, работает очень хорошо, и я могу получить доступ к экземплярам службы в других веб-приложениях. Однако, когда я пытаюсь получить доступ к службам локатора служб из класса MessageListener, instannces имеют значение NULL.
Как я понимаю, классы MessageListener создаются с использованием файлов spring-messaging.xml через web.xml portalContextConfigLocation context-param. Я подозреваю, что thready, в котором работает прослушиватель сообщений, имеет другой загрузчик классов, чем мой webapp. Вот почему я попытался напечатать путь к потоку, в котором работает прослушиватель сообщений. Я был удивлен, что classpath не содержит никакого JAR-файла из папки lib/ext tomcat.
Является ли это целью или ошибкой? Кто-нибудь работал в подобной проблеме?
Любая помощь приветствуется.
Просто любопытно, используете ли вы комплект tomcat для GA6 или вы загрузили этот кота отдельно? – Paras
Привет, я использую пакет Tomcat – shimon001