com.liferay.portal.kernel.scheduler.SchedulerEngine: PORTLET_ID не может быть разрешен или не является полем - PullRequest
0 голосов
/ 03 февраля 2020

Поля PORTLET_ID и MESSAGE_LISTENER_CLASS_NAME устарели в новых версиях этой библиотеки.
Какие два поля функционально эквивалентны в новых версиях?

IDE: LiferayProjectSDKwithDevStudioCommunityEdition-201910152009- windows -installer.exe
Версия Liferay: liferay-ce-portal-7.3.0-ga1
Windows 10 64-разрядная сборка 1909 в VMWare Рабочая станция Pro 15.5.1 на Linux Mint Cinnamon 64-bit 19.3 Tricia.

<dependency>
    <groupId>com.liferay.portal</groupId>
    <artifactId>com.liferay.portal.kernel</artifactId>
    <version>5.3.0</version>
    <scope>provided</scope>
</dependency>

enter image description here

https://docs.liferay.com/ce/portal/7.1-latest/javadocs/portal-kernel/
https://docs.liferay.com/portal/7.0/javadocs/portal-kernel/deprecated-list.html

У меня множество ошибок в программе. Откуда я знаю все устаревшие слова на что следует заменить?

1 Ответ

0 голосов
/ 03 февраля 2020

Те константы, которые устарели в Liferay Portal 7.0 как часть https://issues.liferay.com/browse/LPS-59681 улучшений, см. Также изменения кода здесь: https://github.com/brianchandotcom/liferay-portal/pull/31480/files#diff -752cb5829d58912170a4665b288ce6c6

You получить дополнительную информацию об этих изменениях на странице критических изменений Liferay, см.

На этой странице вы можете прочитать следующую информацию:

Удалены все методы из SchedulerEngineHelper, которые явно планируют задания с помощью SchedulerEntry или Укажите имена классов MessageListener

Date: 2015-Oct-29
JIRA Ticket: LPS-59681

Что изменилось?

Следующие методы были удалены из SchedulerEngine:

SchedulerEngineHelper.addJob(Trigger, StorageType, String, String, Message, String, String, int)
SchedulerEngineHelper.addJob(Trigger, StorageType, String, String, Object, String, String, int)
SchedulerEngineHelper.schedule(SchedulerEntry, StorageType, String, int)

Кто затронут?

Это влияет на разработчиков, которые используют вышеуказанные методы для планирования заданий в SchedulerEngine. Как мне обновить мой код?

Вы должны обновить свой код, чтобы вызвать один из следующих методов:

SchedulerEngineHelper.schedule(Trigger, StorageType, String, String, Message, int)
SchedulerEngineHelper.schedule(Trigger, StorageType, String, String, Object, int)

Вместо того, чтобы просто указывать имя класса вашего запланированного слушателя задания, вы должны следовать эти шаги:

Instantiate your MessageListener.

Call SchedulerEngineHelper.register(MessageListener, SchedulerEntry) to register your SchedulerEventMessageListener.

Почему было сделано это изменение?

Удаленные методы предоставили средства, которые не совместимы с использованием декларативных служб в контейнере OSGi. Новый подход позволяет правильно вводить зависимости в запланированные прослушиватели сообщений о событиях.

...