Я боролся с этим в течение нескольких дней, и я искал десятки статей в StackOverflow и других сайтах-разработчиках.Все, что я хочу, - это получить доступ к базе данных H2 mem в Websphere V8 с использованием JPA 2.0
Я использовал интерфейс диспетчера развертывания для настройки WebSphere Application Server 8.0.0.3 с поставщиком H2 JDBC и источником данных для моего приложения, используя учебник, который я нашел here.
JDBC Источник данных:
Name: H2 JDBC Provider
Classpath: $(H2_JDBC_DRIVER_PATH)/h2-1.3.161.jar
Implementation class name: org.h2.jdbcx.JdbcDataSource
Источник данных:
Provider: H2 JDBC Provider
Name: SGO_datasource
JNDI name: jdbc/sgodb
Use this data source in container managed persistence (CMP): true
Data store helper class name: com.ibm.websphere.rsadapter.ConnectJDBCDataStoreHelper (user-defined)
(default values for all the rest)
Custom properties:
URL: jdbc:h2:mem:test;DB_CLOSE_DELAY=-1
user: sa
password: sa
Я проверил этот источник данных с помощью кнопки Test соединения в DM, и она работала отлично.
Когда я пытаюсь открыть источник данных из моего приложения я получаю эту ошибку на первом доступе:
Caused by: <openjpa-2.1.2-SNAPSHOT-r422266:1227818 fatal user error> org.apache.openjpa.persistence.ArgumentException: A JDBC Driver or DataSource class name must be specified in the ConnectionDriverName property.
После прочтения этой issue, я проверил расположение моего файла persistence.xml в WAR генерироваться и похоже, находится в правильном месте: WEB-INF/classes/META-INF/persistence.xml.
persistence.xml:
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="sgo">
<jta-data-source>java:comp/env/jdbc/sgodb</jta-data-source>
</persistence-unit>
</persistence>
Любые идеи? Заранее спасибо.
что «причиненном» сообщение об ошибке является общее сообщение, если источник данных не может быть посмотрел. Посмотрите ранее в журналах сообщение об ошибке CWWJPxxxxxE (где xxxxx - это числа), чтобы узнать, есть ли более подробная информация о том, почему источник данных не может быть просмотрен. Скорее всего, либо ресурс-ссылка 'jdbc/sgodb' не определен, либо не привязан к источнику данных' jdbc/sgodb'. –
Пожалуйста, добавьте код, в котором используется контекст persistence. – Gas