У меня есть несколько пользователей с ролями администратора, которые подписаны на общую папку, в которой хранятся какие-то изображения и документы.Когда один пользователь добавляет несколько изображений в папку, подписанное электронное письмо отправляется подписанному пользователю, у которого есть разрешение на просмотр.Моя проблема начинается отсюда, когда я загружаю изображения через портал, уведомление по электронной почте отправляется успешно.Но когда я пытаюсь сохранить изображение, используя следующий код, уведомление по электронной почте не отправляется.
**
_dlAppLocalService.addFileEntry(userId, companyGroup.getGroupId(), folder.getFolderId(), fileName,
ContentTypes.TEXT_CSV_UTF8, fileContent.getBytes(), serviceContext);
**
Для дальнейшего объяснения: - Этоконкретный код запускается внутри Schedular, поэтому я создаю ServiceContext следующим образом: -
long companyId = _portal.getDefaultCompanyId();
Company company = _companyLocalService.getCompany(companyId);
Group companyGroup = _groupLocalService.getCompanyGroup(companyId);
User defaultUser = company.getDefaultUser();
long userId = defaultUser.getUserId();
ServiceContext serviceContext = new ServiceContext();
serviceContext.setCompanyId(companyId);
serviceContext.setUserId(userId);
и затем передаю контекст службы внутри вышеуказанного метода.Я обнаружил, что request и themeDisplay равны нулю в com.liferay.portlet.documentlibrary.util.DLImpl.startWorkflowInstance (long, DLFileVersion, String, ServiceContext) , что приводит к blankEntryURL и com.liferay.portlet.documentlibrary.service.impl.DLAppHelperLocalServiceImpl.notifySubscribeers (long, FileVersion, String, ServiceContext ) не удается выполнить.
Может кто-нибудь помочь ?.Как я могу получить файл entryURL, не имея объектов themeDisplay и запроса?