Ошибка WebLogic: невозможно получить соединение JDBC

У меня есть странное исключение с WebLogic 12.2.1.3, Hibernate 5.3, Sprnig Data JPA и Java EE.

У меня есть база данных и общий источник данных JDBC в weblogic с именем JNDI jdbc/UsersDS.

Когда я пытаюсь перечислить в нем записи, я получаю очень длинное исключение, которое я действительно не хочу вставлять сюда, поэтому я использовал Pastebin: Вот оно. Пожалуйста, дайте мне знать, если я все равно вставлю это сюда.

У меня точно такие же настройки для этого артефакта, как и для другого, который подключается к тому же серверу, но к другой базе данных, с другим пользователем. Тот работает как шарм, этот - нет. Единственное отличие, которое, как мне кажется, связано с этим, заключается в том, что артефакт, из которого я получаю сообщение об ошибке, включает Spring Data Redis в качестве зависимости вместе с Spring Data JPA.

Постоянство.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<persistence xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"
             version="2.2">
    <persistence-unit name="UsersDS" transaction-type="JTA">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <jta-data-source>jdbc/UsersDS</jta-data-source>
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
            <property name="hibernate.transaction.factory_class"
                      value="org.hibernate.transaction.JTATransactionFactory"/>
            <property name="hibernate.transaction.manager_lookup_class" value="javax.transaction.TransactionManager"/>
            <property name="hibernate.transaction.jta.platform" value="Weblogic"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL95Dialect"/>
        </properties>
    </persistence-unit>
</persistence>

Пользовательский интерфейс: Еще одна вещь, которая может быть связана с проблемой, заключается в том, что, поскольку у меня есть и Spring Data JPA, и Redis в пути к классам, мне пришлось пометить интерфейс JpaRepository как @NoRepositoryBean, потому что в противном случае я получил бы дубликат. Итак, у меня есть метод создания компонента репозитория CDI:

    @Inject
    private EntityManager entityManager;

    @Produces
    @RequestScoped
    public UserRepository userRepository() {
        return createRepository(UserRepository.class);
    }

    private <T extends Repository> T createRepository(Class<T> repositoryClass) {
        RepositoryFactorySupport factory = new JpaRepositoryFactory(entityManager);
        return factory.getRepository(repositoryClass);
    }

UI2.: Я также написал несколько интеграционных тестов с базой данных H2 в памяти, и все работает гладко.


person László Stahorszki    schedule 15.11.2018    source источник
comment
В логе нашел такую ​​строчку: SessionFactoryRegistry - Not binding SessionFactory to JNDI, no JNDI name configured Это что-нибудь значит? Таблица в базе данных создается, хотя   -  person László Stahorszki    schedule 15.11.2018
comment
Можете ли вы опубликовать также весеннюю конфигурацию?   -  person Angelo Immediata    schedule 15.11.2018
comment
нет пружинной конфигурации. Это среда CDI   -  person László Stahorszki    schedule 15.11.2018
comment
Итак, вы хотите использовать jdbc/UsersDS, но иметь jdbc/FiveshellyD в своей конфигурации. Что неправильно.   -  person M. Deinum    schedule 15.11.2018
comment
да, извините, я забыл это отредактировать, я исправил конфигурацию через пару минут после публикации. Я заменил UsersDS на FiveshellyDS, потому что знаю, что этот источник данных работает, потому что он работает с другим артефактом.   -  person László Stahorszki    schedule 15.11.2018


Ответы (1)


У меня есть решение, и это, вероятно, какой-то обходной путь или сг, но у меня больше ничего нет.

Итак, что произошло, у меня были (по умолчанию) глобальные транзакции в источнике данных weblogic. Отключение решило проблему

person László Stahorszki    schedule 20.11.2018