我有一个正在运行的嵌入式H2数据库,我就是这样连接到它的:Browser H2 interface
这完全符合您的期望。我正在使用JPA/EJB/JSF构建一个将在Liberty配置文件上运行的EAR。在过去,我已经将Liberty Profile配置为与几个不同的数据库一起工作,但我在H2上没有运气。我的server.xml看起来像这样:
<!-- Enable features -->
<featureManager>
<feature>ejbLite-3.1</feature>
<feature>servlet-3.0</feature>
<feature>localConnector-1.0</feature>
<feature>managedBeans-1.0</feature>
<feature>cdi-1.0</feature>
<feature>jpa-2.0</feature>
<feature>jaxrs-1.1</feature>
<feature>jsf-2.0</feature>
<feature>jaxws-2.2</feature>
</featureManager>
<httpEndpoint host="*" httpPort="9080" httpsPort="9443" id="defaultHttpEndpoint"/>
<library description="XXXX" id="XXXX" name="XXXX">
<fileset dir="${shared.resource.dir}/XXXX" includes="*.jar"/>
</library>
<dataSource type="javax.sql.DataSource" id="XXXX" jndiName="jdbc/XXXX">
<jdbcDriver javax.sql.DataSource="org.h2.jdbcx.JdbcDataSource">
<library>
<fileset caseSensitive="false" dir="${shared.resource.dir}/XXXX"/>
</library>
</jdbcDriver>
<properties password="gg" URL="jdbc:h2:~/XXXX" user="SA" databaseName="XXXXDB"/>
</dataSource><applicationMonitor updateTrigger="mbean"/>
这个方法永远找不到数据库。我也尝试过使用192.168.2.13:8087,但这给出了
org.apache.openjpa.persistence.PersistenceException: No suitable driver found for http://192.168.2.13:8087 DSRA0010E: SQL State = 08001, Error Code = 8,001
at org.apache.openjpa.jdbc.sql.DBDictionaryFactory.newDBDictionary(DBDictionaryFactory.java:102)
at org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl.getDBDictionaryInstance(JDBCConfigurationImpl.java:603). 我花了相当多的时间在谷歌上搜索合适的配置,但没有成功。任何指导都将不胜感激。
提前谢谢。
发布于 2015-08-13 18:43:51
这是我在wlp的server.xml中的工作h2配置:
<dataSource
id="mydb"
jndiName="jdbc/mydb"
type="javax.sql.ConnectionPoolDataSource">
<jdbcDriver
javax.sql.ConnectionPoolDataSource="org.h2.jdbcx.JdbcDataSource"
javax.sql.DataSource="org.h2.jdbcx.JdbcDataSource"
javax.sql.XADataSource="org.h2.jdbcx.JdbcDataSource"
libraryRef="SharedLibrary_H2"/>
<properties
URL="jdbc:h2:C:/Apps/db/h2/mydb.db;MV_STORE=FALSE;AUTO_SERVER=TRUE"
databaseName="MY_DB"
user="sa"
password="sa" />
</dataSource>
<library id="SharedLibrary_H2">
<fileset dir="${shared.resource.dir}/h2" id="Fileset_H2"/>
</library>h2.jar必须在以下位置提供:
C:\path\to\wlp\usr\shared\resources\h2\h2-1.4.187.jar在peristence.xml的持久化单元中:
<jta-data-source>jdbc/mydb</jta-data-source>发布于 2014-07-08 04:04:18
您收到的错误似乎表明OpenJPA无法确定要使用哪个DBDictionary。当第一次启动数据库连接时,OpenJPA会尝试根据连接的元数据确定要使用的适当字典。在这种情况下,要么无法建立到数据库的连接(您应该能够使用给定的数据库url信息来验证这一点),要么OpenJPA无法根据元数据确定数据库类型。我的猜测是你遇到的是后一种情况。
您可以通过在persistence.xml文件中指定字典来绕过此自动字典检测。尝试指定此属性并查看结果。
<property name="openjpa.jdbc.DBDictionary" value="h2"/>更详细的信息可以在这里找到:http://ci.apache.org/projects/openjpa/trunk/docbook/manual.html#ref_guide_dbsetup_dbsupport
https://stackoverflow.com/questions/24353077
复制相似问题