无法在 Glassfish 中为 h2 数据库创建连接池和数据源
Posted
技术标签:
【中文标题】无法在 Glassfish 中为 h2 数据库创建连接池和数据源【英文标题】:Can't create connection pool and datasource in Glassfish for h2 database 【发布时间】:2012-04-05 17:29:38 【问题描述】:这是我的 glassfish-resources.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
<jdbc-connection-pool res-type="javax.sql.DataSource"
datasource-classname="org.h2.jdbcx.JdbcDataSource"
pool-resize-quantity="1" max-pool-size="5" steady-pool-size="0"
statement-timeout-in-seconds="60" name="jdbc/test_pool">
<property name="driverClass" value="org.h2.Driver"/>
<property name="URL" value="jdbc:h2:D:\test\test;IFEXISTS=TRUE;AUTO_SERVER=TRUE"/>
<property name="User" value="root"/>
<property name="Password" value="root"/>
</jdbc-connection-pool>
<jdbc-resource object-type="system-all" enabled="true" jndi-name="jdbc/test" pool-name="jdbc/test_pool" />
</resources>
在通过 m2eclipse 使用 maven glassfish 插件 将战争部署到服务器后,当我执行 asadmin> list-jdbc-connection-pools
时,我的连接池不在列表中。我真的迷路了
编辑。
asadmin add-resources
由于某种原因工作正常
Glassfish 3.1.2(内部版本 23)
POM.xml:
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>maven-embedded-glassfish-plugin</artifactId>
<version>3.1.1</version>
<type>maven-plugin</type>
</dependency>
<plugin>
<groupId>org.glassfish.maven.plugin</groupId>
<artifactId>maven-glassfish-plugin</artifactId>
<version>2.1</version>
<configuration>
<glassfishDirectory>d:\glassfish3</glassfishDirectory>
<user>admin</user>
<passwordFile>d:\password.txt</passwordFile>
<debug>true</debug>
<echo>true</echo>
<domain>
<name>domain1</name>
<adminPort>4848</adminPort> <!-- mandatory for mvn glassfish:deploy -->
</domain>
<components>
<component>
<name>$project.artifactId</name>
<artifact>$project.build.directory/$project.build.finalName.war</artifact>
</component>
</components>
</configuration>
</plugin>
EDIT2 问题解决了。谢谢大家!!!
【问题讨论】:
通过管理控制台看到连接池了吗? 你是说图形用户界面?不,只有 TimerPool 和 DerbyPool 您是否尝试利用应用程序范围资源功能? blogs.oracle.com/JagadishPrasath/entry/… 你正在部署的war文件的内容是什么......特别是WEB-INF和META-INF目录......更具体地说,“你有一个名为'glassfish- resources.xml' 是否包含您在此 SOQ 中描述的内容?”您是否使用“asadmin list-applications --resources --subcomponents”来查看资源?它们在“asadmin list-jdbc-connection-pools”命令的输出中不可见。 嘿...刚刚看到您已经开始工作了...太好了...请善待并分享您学到的知识作为这个问题的答案,以便其他人能够解决以后会遇到类似的问题。 【参考方案1】:尝试直接从管理控制台添加连接池。然后 ping 看它是否在监听。
【讨论】:
现在您可以在管理控制台中看到您的连接池了吗? 仍然无法通过向服务器部署战争来添加连接池:( 如果 glassfish 服务器从浏览器运行,您可以查看管理控制台。它有很好的界面来查看资源及其连接池。我使用 netbeans 并通过以下方式访问它:localhost:4848/common/index.jsf 我不知道 maven 即使我在管理控制台中部署战争,仍然没有创建连接池以上是关于无法在 Glassfish 中为 h2 数据库创建连接池和数据源的主要内容,如果未能解决你的问题,请参考以下文章
Hibernate 不会在 h2 中为使用 @Entity 注释的类创建专用表