Jdbc 使用Glassfish连接h2数据库

Jdbc 使用Glassfish连接h2数据库,jdbc,glassfish-3,h2,Jdbc,Glassfish 3,H2,我正在使用Glassfish应用服务器开发一个web应用程序。 我已经安装了H2DB,现在试图在glassfish中定义一个连接池,但在尝试ping数据库时失败了 以下是我所做的: 安装了H2 DB并创建了一个新的DB(服务器模式) 我在pom.xml中添加了一个H2 maven依赖项: <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifac

我正在使用Glassfish应用服务器开发一个web应用程序。 我已经安装了H2DB,现在试图在glassfish中定义一个连接池,但在尝试ping数据库时失败了

以下是我所做的:

  • 安装了H2 DB并创建了一个新的DB(服务器模式)
  • 我在pom.xml中添加了一个H2 maven依赖项:

    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <version>1.3.166</version>
    </dependency>
    
    
    com.h2数据库
    氢
    1.3.166
    
  • 已将H2 jar文件(H2-1.3.166.jar)复制到我的glassfish库:C:\glassfish3\glassfish\lib
  • 登录glassfish管理gui并创建以下jdbc连接:
    • 资源类型:javax.sql.DataSource
    • 数据库驱动程序供应商:H2
    • 数据源类名:org.h2.jdbcx.JdbcDataSource
  • 我的“其他财产”包括:

    • 用户:my_db_用户
    • 密码:我的密码
    • url:jdbc:h2:tcp://localhost/~/my\u db\u name;自动_服务器=TRUE
    我尝试ping此连接时失败,并显示以下消息:

    为myCpool Ping连接池失败。类名错误或未为设置类路径:org.h2.jdbcx.JdbcDataSource请查看server.log以了解更多详细信息

    完整日志显示:

    数据源对象java.lang.ClassNotFoundException:org.h2.jdbcx.JdbcDataSource位于java.net.URLClassLoader$1.run(URLClassLoader.java:366)位于java.net.URLClassLoader$1.run(URLClassLoader.java:355)位于java.security.AccessController.doPrivileged(本机方法)位于java.net.URLClassLoader.findClass(URLClassLoader.java:354)在java.lang.ClassLoader.loadClass(ClassLoader.java:423)在java.lang.ClassLoader.loadClass(ClassLoader.java:356)在java.lang.Class.forName0(本机方法)在java.lang.Class.forName(Class.java:264)在com.sun.gjc.common.DataSourceObjectBuilder.GetDataSourceObjectObject(DataSourceObjectBuilder.java:285)com.sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.java:114)com.sun.gjc.spi.ManagedConnectionFactory.getDataSource(ManagedConnectionFactory.java:1307)com.sun.gjc.spi.DSManagedConnectionFactory.getDataSource(DSManagedConnectionFactory.java:163)com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.GetUnmoledConnection(ConnectorConnectionPoolAdminServiceImpl.java:697)上的com.sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.java:102)在com.sun.enterprise.connectors.service.ConnectorConnectionPoolAdminServiceImpl.testConnectionPool(ConnectorConnectionPoolAdminServiceImpl.java:426)在com.sun.enterprise.connectors.ConnectorRuntime.pingConnectionPool(ConnectorRuntime.java:1086)在org.glassfish.connectors.admin.cli.pingConnectionPool.execute(pingConnectionPool.java:130)上com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)com.sun.enterprise.v3.admin.CommandRunnerImpl.docomand(CommandRunnerImpl.java:363)com.sun.enterprise.v3.admin.CommandRunnerImpl.docomand(CommandRunnerImpl.java:1085)com.sun.enterprise.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)org.glassfish.admin.rest.ResourceUtil.runCommand(ResourceUtil.java:214)在org.glassfish.admin.rest.resources.TemplateExecCommand.executeCommand(TemplateExecCommand.java:127)在org.glassfish.admin.rest.resources.TemplateCommandGetResource.processGet(TemplateCommandGetResource.java:78)在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)在sun.reflect.NativeMethodAccessorImpl.invoke位于com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)的java.lang.reflect.Method.invoke(Method.java:601)的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中的(NativeMethodAccessorImpl.java:57)com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$ResponseOutInvoker.\u dispatch(AbstractResourceMethodDispatchProvider.java:205)com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:288)com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:134)com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)com.sun.jersey.server.impl.uri.rules.SubLocatorRule.acceptcom.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:108)com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)上com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)com.sun.jersey.server.impl.application.WebApplicationImpl.\u handleRequest(WebApplicationImpl.java:1469)com.sun.jersey.server.impl.application.WebApplicationImpl.\u handleRequest(WebApplicationImpl.java:1400)com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1349)com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1339)com.sun.jersey.server.impl.container.grizzly.GrizzlyContainer.\u服务(GrizzlyContainer.java:182)在com.sun.jersey.server.impl.container.grizzly.GrizzlyContainer.service(GrizzlyContainer.java:147)在org.glassfish.admin.rest.adapter.RestAdapter.service(RestAdapter.java:148)在com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)在com.sun.enterprise.v3.server.HK2Dispatcher.dispatcher.dispatcher.dispatcher.java:117在com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)中
    
    jdbc:h2:~/my_db_name;AUTO_SERVER=TRUE
    
    glassfish/domains/domain1/lib/ext