У меня есть проект Spring Maven, использующий Java 11. Jboss WIldfly 15.0.1 Final - мой сервер развертывания.
Чтобы импортировать данные (объекты, использующие Hibernate) из одного источника данных в другой источник данных (MySQL) - я добавил один первичный entityManagerFactory
с JpaTransactionManager
, и у меня есть две другие фабрики диспетчера сущностей отдельно perisistenceUnits
и chainedTransactionManager
используется (для 1-го этапа коммит-1P C commnit).
При развертывании войны иногда я получаю следующее исключение:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'someDAO': Injection of persistence dependencies failed; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'onetimeConfig': Injection of persistence dependencies failed; nested exception is
org.springframework.beans.factory.BeanCreationException: Error creating bean with name
'entityMgrFactory2' defined in class path resource [com/path/ImportConfig.class]: Bean
instantiation via factory method failed; nested exception is
org.springframework.beans.BeanInstantiationException: Failed to instantiate
[javax.persistence.EntityManagerFactory]: Factory method 'entityMgrFactory2' threw exception;
nested exception is java.lang.IllegalStateException: 'url' not set
Заголовок класса someDAO:
@Transactional(rollbackFor = {Exception.class})
@Repository("someDAO")
public class SomeDAOImpl extends ParentDAOImpl implements SomeDAO {
Класс someDAO
расширяет класс ParentDAOImpl
, в котором используется основной entityManagerFactory
, и также упоминается с помощью @DependsOn
. Итак, почему при развертывании создание someDAO
пытается инициировать создание entityMgrFactory2
, когда упоминается entityManagerFactory
в?!
@Repository("parentDAOImpl")
@DependsOn({"entityManagerFactory"})
public class ParentDAOImpl implements ParentDAO, Serializable {
@PersistenceContext
private transient EntityManager entityManager;
...
Проблема никогда не повторяется на моей локальной машине. Это происходит только при развертывании на других серверах, и из-за этого происходит сбой развертывания. А также исключение иногда упоминает someDAO
, а иногда - другое DAOclass
, которое распространяется ParentDAOImpl
.
Пожалуйста, помогите мне, я новичок.