Ошибка 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.

Persistence.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>

Ui .: Еще одна вещь, которая может быть связана с проблемой, заключается в том, что у меня есть и 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 в базе данных памяти, и все работает гладко

Нашел в журнале такую ​​строчку: SessionFactoryRegistry - Not binding SessionFactory to JNDI, no JNDI name configured Это что-нибудь значит? Таблица в базе данных создается, хотя

László Stahorszki 15.11.2018 16:07

Вы можете опубликовать также конфигурацию пружины?

Angelo Immediata 15.11.2018 17:37

нет пружинной конфигурации. Это среда CDI

László Stahorszki 15.11.2018 17:39

Итак, вы хотите использовать jdbc/UsersDS, но в вашей конфигурации есть jdbc/FiveshellyD. Что неверно.

M. Deinum 15.11.2018 17:40

да, извините, я забыл отредактировать это, я исправил конфигурацию через пару минут после публикации. Я заменил UsersDS на FiveshellyDS, потому что я знаю, что этот источник данных работает, потому что он работает с другим артефактом.

László Stahorszki 15.11.2018 17:42
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
5
644
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

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

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

Другие вопросы по теме