BasicDataSource, вызывающий исключение java.util.ConcurrentModificationException в WebSphere

BasicDataSource, вызывающий исключение java.util.ConcurrentModificationException в WebSphere.

проблема

В Spring источник данных объявляется как «org.apache.commons.dbcp.BasicDataSource». При развертывании в WebSphere все работает отлично.

Файл: spring-datasource.xml




    
       
           classpath:config/database/database.properties
       
    

    
        
    
    
    
    

Однако при перезапуске веб-приложения в WebSphere оно получает следующее исключение:

org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'dataSource' defined in class path resource
[config/database/spring/spring-datasource.xml]: Instantiation of bean failed;
......
Caused by: java.lang.ExceptionInInitializerError
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:222)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    ... 114 more
Caused by: java.util.ConcurrentModificationException
    at java.util.AbstractList$SimpleListIterator.next(Unknown Source)
    at java.sql.DriverManager.getDrivers(Unknown Source)
    at org.apache.commons.dbcp.BasicDataSource.(BasicDataSource.java:57)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
    ... 121 more

Похоже, что источник данных (BasicDataSource) вызывает «java.util.ConcurrentModificationException».

Решение

Вам нужно использовать источник данных WebSphere, а не «org.apache.commons.dbcp.BasicDataSource». Чтобы исправить это, просто зарегистрируйте источник данных WebSphere и введите имя jndi, например «jdbc/anythingDS». Весной объявляется источник данных jdni следующим образом:

Файл: spring-datasource.xml




    
        
        
        
        
    

В разработке WebSphere вы должны следовать образу действий WebSphere.