无法在 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 使用 ma​​ven glassfish 插件 将战争部署到服务器后,当我执行 asadmin&gt; 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 数据库创建连接池和数据源的主要内容,如果未能解决你的问题,请参考以下文章

glassfish 和 h2database 问题

Hibernate 不会在 h2 中为使用 @Entity 注释的类创建专用表

在 H2 数据库引擎中为 UUID 类型的主键列指定默认值?

Glassfish中的JDBC连接池ping错误

JDBC连接池设置无法在Glassfish5上运行

无法通过 Glassfish 4.1 Web 管理员创建任何 JMS 资源