c3p0 mysql tomcat_在tomcat上与hibernate和mysql共享c3p0连接池

我在一个项目中工作,我想在tomcat上使用hibernate 配置一个 共享连接 池。该项目已经实施,我必须对其进行更改。它配置有

hibernate和c3p0连接池 ,其中所有jar都位于项目本身中。

我将所有用于连接池的jar文件复制到了 tomcat*的 lib 文件夹中。*

c3p0-0.9.5.2.jar

c3p0-oracle-thin-extras-0.9.5.2.jar

mchange-commons-java-0.2.11.jar

mysql-connector-java-5.1.40-bin.jar

在 server.xml中, 我做了一个资源

description="DB Connection"

driverClass="com.mysql.jdbc.Driver"

maxPoolSize="40"

minPoolSize="10"

acquireIncrement="1"

name="jdbc/test"

user="admin"

password="root"

factory="org.apache.naming.factory.BeanFactory"

type="com.mchange.v2.c3p0.ComboPooledDataSource"

jdbcUrl="jdbc:mysql://localhost:3306/testDB" />

global="jdbc/test"

name="jdbc/test"

type="javax.sql.DataSource" />

之后,我可以在phpmyadmin(mysql)中看到由池创建的连接。

在我的项目的 web.xml 文件中,我创建了一个资源引用。

DB Connection

jdbc/testDB

javax.sql.DataSource

Container

`

还有我的 hibernate.cfg.xml 文件

org.hibernate.dialect.MySQLDialect

java:comp/env/jdbc/testDB

那就是我到目前为止所做的。我的问题是。在我的项目中,我有一个sessionfactory,其中设置了hibernate.cfg.xml和Database.hbm.xml文件。现在,这给了我一个

java.lang.NullPointerException 。

我是否也必须在tomcat上将sessionfactory配置为资源?

在Tomcat上:

Jun 29, 2017 10:06:19 AM org.apache.catalina.mbeans.GlobalResourcesLifecycleListener createMBeans

SCHWERWIEGEND: Exception processing Global JNDI Resources

javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: myutil.hibernate.HibernateSessionFactoryTomcatFactory]

at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:82)

at javax.naming.spi.NamingManager.getObjectInstance(Unknown Source)

at org.apache.naming.NamingContext.lookup(NamingContext.java:842)

at org.apache.naming.NamingContext.lookup(NamingContext.java:153)

at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:117)

at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71)

at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:34)

at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:138)

at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:145)

at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:110)

at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:82)

at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)

at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)

at org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)

at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:347)

at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:732)

at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)

at org.apache.catalina.startup.Catalina.start(Catalina.java:689)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.lang.reflect.Method.invoke(Unknown Source)

at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)

Caused by: java.lang.ClassNotFoundException: myutil.hibernate.HibernateSessionFactoryTomcatFactory

at java.net.URLClassLoader.findClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at java.lang.ClassLoader.loadClass(Unknown Source)

at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:80)

... 23 more

Jun 29, 2017 10:06:17 AM org.apache.tomcat.util.digester.Digester endElement

WARNUNG: No rules found matching 'Server/GlobalNamingResources/ResourceLink'.

Jun 29, 2017 10:06:17 AM org.apache.catalina.core.AprLifecycleListener init

INFORMATION: The APR based Apache Tomcat Native library which allows optimal

performance in production environments was not found on the java.library.path:

编辑

我没有提到的是,IAM使用OSGI昼夜平分线和Servlet桥。我配置的所有内容都是正确的,在这种情况下,我唯一需要更改的就是更改我的

launch.ini :

osgi.parentClassloader=app

osgi.contextClassLoaderParent=app

更改为

osgi.parentClassloader=app

osgi.contextClassLoaderParent=fwk

在 comp*解决我的问题之前 也 使用斜杠使用 java:/ comp / env / jdbc / testDB*

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值