Liferay 7.3 — орг.спящий режим.Исключение сопоставления: класс сущности не найден

#java #hibernate #liferay #liferay-7

Вопрос:

Я довольно новичок в разработке Liferay. Я работаю над переносом проекта с 6.2 на 7.3.

Плагин, над которым я работаю, имеет структуру-api / -службы / -портлета, которую я видел в учебных пособиях.

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

2021-07-07 10:30:11.759 ОШИБКА [запуск трубы 1356][LiferayServiceExtender:88] организация.спящий режим.Исключение сопоставления: класс сущности не найден: PhishRodLab.db.model.impl.Customer_PreferencesImpl org.hibernate.Исключение сопоставления: класс сущности не найден: PhishRodLab.db.model.impl.Customer_PreferencesImpl в org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:125) в org.hibernate.кортеж.PropertyFactory.getGetter(PropertyFactory.java:191) в org.hibernate.кортеж.PropertyFactory.buildIdentifierProperty(PropertyFactory.java:67) в организации.спящий режим.кортеж.сущность.EntityMetamodel.(EntityMetamodel.java:135) в org.hibernate.persister.entity.Абстрактныйперсистер.(AbstractEntityPersister.java:485) в org.hibernate.persister.entity.Синглетная личность.(SingleTableEntityPersister.java:133) в org.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:84) в org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:286) в org.hibernate.cfg.Configuration.buildSessionFactory(Конфигурация.java:1872) в org.springframework.orm.спящий режим3.LocalSessionFactoryBean.newSessionFactory(LocalSessionFactoryBean.java:795) в com.liferay.portal.spring.зимовать.PortalHibernateConfiguration.newSessionFactory(PortalHibernateConfiguration.java:298) в org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:717) в com.liferay.portal.spring.зимовать.PortalHibernateConfiguration.buildSessionFactory(PortalHibernateConfiguration.java:99) в com.спасательный круг.портал.пружина.удлинитель.внутренний.LiferayServiceExtender$LiferayServiceExtension.start(LiferayServiceExtender.java:148) в com.liferay.portal.spring.extender.внутренний.LiferayServiceExtender.addingBundle(LiferayServiceExtender.java:83) в com.liferay.portal.spring.extender.внутренний.LiferayServiceExtender.addingBundle(LiferayServiceExtender.java:61) в org.osgi.util.tracker.BundleTracker$Отслеживается.Настройка(BundleTracker.java:475) в org.osgi.util.tracker.BundleTracker$Отслеживается.Настройка(BundleTracker.java:1) в организации.osgi.util.трекер.Абстрактно прослежено.Добавление трека(AbstractTracked.java:256) в org.osgi.util.tracker.Абстрактно прослежено.отслеживать(AbstractTracked.java:229) в org.osgi.util.tracker.BundleTracker$отслежен.bundleChanged(BundleTracker.java:450) в org.eclipse.osgi.внутренняя структура.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908) в org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230) в org.eclipse.osgi.framework.eventmgr.СлушателЬская очередь.dispatchEventSynchronous(ListenerQueue.java:148) в организации.eclipse.osgi.внутренняя структура.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:230) в org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:137) в org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:129) в org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:191) в org.eclipse.osgi.container.Module.publishEvent(модуль.java:476) в org.eclipse.osgi.container.Модуль.доСтарт(модуль.java:578) в организации.eclipse.osgi.контейнер.Модуль.запуск(модуль.java:449) в org.eclipse.osgi.внутренняя структура.EquinoxBundle.start(EquinoxBundle. java:428) в org.eclipse.osgi.internal.framework.EquinoxBundle.start(EquinoxBundle.java:447) в org.eclipse.equinox.console.команды.EquinoxCommandProvider.start(EquinoxCommandProvider.java:243) в sun.reflect.NativeMethodAccessorImpl. invoke0(собственный метод) в sun.reflect. NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) в sun.reflect.Делегирование methodaccessorimpl.invoke(делегирование methodaccessorimpl.java:43) на java.лэнг,подумай.Метод.вызов(Метод.java:498) в org.apache.felix.gogo.время выполнения.Reflective.invoke(Reflective.java:139) в org.apache.felix.gogo.время выполнения.CommandProxy.выполнить(CommandProxy.java:91) в org.apache.felix.gogo.время выполнения.Closure.executeCmd(Closure.java:599) в org.apache.felix.gogo.время выполнения.Closure.executeStatement(Closure.java:526) в org.apache.felix.gogo.время выполнения.Закрытие.исполнение(закрытие.Ява:415) в орг.Апачи.Феликс.Гого.время выполнения.Трубы.doCall(трубы.в Java:416) в орг.Апачи.Феликс.Гого.время выполнения.Трубы.звоните(трубы.Ява:229) в орг.Апачи.Феликс.Гого.время выполнения.Трубы.звоните(трубы.Ява:59) в Java.util.одновременно.FutureTask.run(FutureTask.java:266) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) в java.lang.Thread.run(поток.java:748) Вызвано: java.lang.Исключение ClassNotFoundException: PhishRodLab.db.model.impl.Customer_PreferencesImpl в org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1365) в org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) на java.lang.Class.forName0(Собственный метод) в java.lang.Class.forName(Class.java:264) в org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:200) в org.hibernate.mapping.PersistentClass.getMappedClass(PersistentClass.java:122) … еще 49

Комментарии:

1. проект-api уже развернут?

2. да -проект api деполирован.

3. PhishRodLab.db.model.impl.Customer_PreferencesImpl не найден.. мне кажется, вы не запускали service builder. Иногда, редко, мне приходилось удалять сгенерированный код и восстанавливать его с помощью новой версии service builder (вероятно, той, которая поставляется с вашим рабочим пространством).

4. не могли бы вы, пожалуйста, объяснить это подробнее, это те вещи, которые я уже пробовал, но тщетно.

Ответ №1:

Я столкнулся с этой ошибкой при переходе с предыдущих версий, когда DTD service.xml файл не тот, что нужно. Вы должны убедиться, что используете последнюю версию, доступную для используемой вами версии (в данном случае 7.3). Например, заголовок service.xml файл должен начинаться так:

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 7.3.0//EN" "http://www.liferay.com/dtd/liferay-service-builder_7_3_0.dtd">

<service-builder...>
 

Лучший вариант-создать тестовый проект servicebuilder с помощью учебника, а затем сравнить сгенерированный код с вашим, отметив различия.

Дополнительная информация: https://help.liferay.com/hc/es/articles/360029028211-Introduction-to-Service-Builder

Комментарии:

1. Вы использовали среду разработки liferay для создания классов? Он также должен быть в последней версии, если нет, хотя в версии 7.3 он работает неправильно

2. да, я также использую студию разработчиков liferay

3. Если да, попробуйте обновить до последней версии, в моем случае у меня была версия для 7.3.5, я думал, что она действительна и для 7.3.6, но это не так. У вас всегда должна быть доступна последняя версия