Я только что нашел неприятную ошибку, которую я сделал во время конфигурации свойств JCC DB2 в «server.xml» моего профиля Liberty v8.5.5.3, который я хотел поделиться с вами, так как он долго искал в Интернете полезные советы.OpenJPA PersistenceException в Liberty 8.5.5.3 Профиль из-за неправильного URL
Я сконфигурировал источник данных DB2 для доступа к JPA в файле «server.xml» с помощью инструментов разработчика Liberty в Eclipse Luna (вкладка «Дизайн»): «Свойства DB2 JCC» не отсортированы очень четко, на мой взгляд. Обязательное имя пользователя и пароль БД не указаны рядом друг с другом и затрудняют определение правильных свойств. К сожалению, я ввел имя пользователя БД в поле «Клиентский пользователь», а не в «Пользователь», который находится почти в конце списка. Заброшенная исключение было:
<openjpa-2.2.3-SNAPSHOT-r422266:1595313 nonfatal general error> org.apache.openjpa.persistence.PersistenceException: There were errors initializing your configuration: <openjpa-2.2.3-SNAPSHOT-r422266:1595313 fatal user error> org.apache.openjpa.util.UserException: A connection could not be obtained for driver class "null" and URL "null". You may have specified an invalid URL.
at org.apache.openjpa.jdbc.schema.DataSourceFactory.newConnectException(DataSourceFactory.java:255)
at org.apache.openjpa.jdbc.schema.DataSourceFactory.installDBDictionary(DataSourceFactory.java:241)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getConnectionFactory(JDBCConfigurationImpl.java:733)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:94) ... ... at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1176)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:795) Caused by: java.sql.SQLNonTransientException: [jcc][t4][10205][11234][4.18.60] Null userid is not supported. ERRORCODE=-4461, SQLSTATE=42815 DSRA0010E: SQL State = 42815, Error Code = -4,461
at com.ibm.db2.jcc.am.kd.a(kd.java:747)}
Я сожалею, это сообщение об ошибке настолько бедна. В бета-версии есть опция '', которая может быть использована для упрощения диагностики в jpa-2.0 (в настоящее время она включена по умолчанию в jpa-2.1). Более подробные сведения об этом параметре приведены здесь: https://www-01.ibm.com/support/knowledgecenter/was_beta_liberty/com.ibm.websphere.wlp.nd.multiplatform.doc/ae/rwlp_feature_jpa-2.0.html –