BasicDataSource, die in WebSphere die Ausnahme java.util.ConcurrentModificationException verursacht
Problem
Deklariert mit Spring die Datenquelle als „org.apache.commons.dbcp.BasicDataSource“. Bei der Implementierung in WebSphere funktioniert alles einwandfrei.
Datei: spring-datasource.xml
classpath:config/database/database.properties
Beim Neustart der Webanwendung in WebSphere tritt jedoch die folgende Ausnahme auf:
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
Es sieht so aus, als würde die Datenquelle (BasicDataSource) „java.util.ConcurrentModificationException“ verursachen.
Lösung
Sie müssen die WebSphere-Datenquelle verwenden, nicht „org.apache.commons.dbcp.BasicDataSource“. Um dies zu beheben, registrieren Sie einfach eine WebSphere-Datenquelle und geben Sie den jndi-Namen wie „jdbc/anythingDS“ ein. Deklariert im Frühjahr die jdni-Datenquelle wie folgt:
Datei: spring-datasource.xml
In der WebSphere-Entwicklung müssen Sie die Vorgehensweise von WebSphere befolgen.