2014-10-21 1 views
0

Я только что нашел неприятную ошибку, которую я сделал во время конфигурации свойств 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)} 
+0

Я сожалею, это сообщение об ошибке настолько бедна. В бета-версии есть опция '', которая может быть использована для упрощения диагностики в 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 –

ответ

0

Это исключение указывает на неправильный URL соединения: «Возможно, вы указали неверный URL.» но «Связь не может быть получена для класса драйвера« null », а URL« null »« действительно указал мне в неправильном направлении.

Я рекомендую использовать вкладку «Источник» вместо вкладки «Дизайн» в инструментах конфигурации профиля Liberty и вручную редактировать записи XML, чтобы избежать неправильных значений конфигурации, которые могут привести к путанице, например.

<server description="new server"> 
<!-- Enable features --> 
<featureManager> 
    <feature>jsp-2.2</feature> 
    <feature>jdbc-4.0</feature> 
    <feature>jpa-2.0</feature> 
</featureManager> 
<httpEndpoint httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/> 
<applicationMonitor updateTrigger="mbean"/> 

<dataSource id="DB2Connection" jndiName="jdbc/DB2Connection"> 
    <jdbcDriver libraryRef="DB2jdbc4libs"/> 
    <properties.db2.jcc user="Administrator" databaseName="CUSTDB" password="{xor}password" portNumber="50000" serverName="dbserver.mycompany.com"/> 
</dataSource> 
<library id="DB2jdbc4libs"> 
     <fileset caseSensitive="true" dir="/opt/db2/V10.5/java" includes="db2jcc_license_cu.jar, db2jcc.jar"/> 
</library> 

<webApplication id="DynWebJPASample" location="DynWebJPASample.war" name="DynWebJPASample"/> 

 Смежные вопросы

  • Нет связанных вопросов^_^