【问题标题】:Error trying to configure Tomcat Global JNDI ConnectionPool with BoneCP尝试使用 BoneCP 配置 Tomcat 全局 JNDI 连接池时出错
【发布时间】:2013-09-22 19:45:38
【问题描述】:

我在 C:\Tomcat5.5\common\lib 中有以下文件

activation.jar
bonecp-0.7.1.RELEASE.jar
commons-el.jar
ecj-3.7.2.jar
guava-15.0.jar
碧玉编译器.jar
jasper-runtime.jar
jsp-api.jar
jtds-1.3.1.jar
log4j-1.2.17.jar
邮件.jar
命名工厂-dbcp.jar
命名-factory.jar
命名资源.jar
servlet-api.jar
slf4j-api-1.7.5.jar

我在 server.xml 中有以下内容

<Resource 
auth="Container"
driverClassName="net.sourceforge.jtds.jdbc.Driver"  
type="com.jolbox.bonecp.BoneCPDataSource"
idleMaxAge="240"
idleConnectionTestPeriod="60"
partitionCount="3"
acquireIncrement="1"
maxConnectionsPerPartition="10"
minConnectionsPerPartition="3"
statementsCacheSize="50"
releaseHelperThreads="4"

name="jdbc/MyDatasource"
jdbcUrl="jdbc:jtds:sqlserver://localhost:1433;databaseName=ROWAN-UK;integratedSecurity=true;"
username="rowanadmin" 
password="aeibP4wwZgr"
factory="org.apache.naming.factory.BeanFactory"/> 

以及 C:\Tomcat5.5\conf\context.xml 中的以下内容:

<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <ResourceLink global="jdbc/MyDatasource" name="jdbc/MyDatasource" type="com.jolbox.bonecp.BoneCPDataSource"/>

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

</Context>

我在 Tomcat5-stdout.log 中得到以下信息:

2013-09-22 21:28:52 Commons Daemon procrun stdout 初始化 SLF4J: 无法加载类“org.slf4j.impl.StaticLoggerBinder”。 SLF4J: 默认为无操作 (NOP) 记录器实现 SLF4J:请参阅 http://www.slf4j.org/codes.html#StaticLoggerBinder 了解更多 细节。 java.lang.reflect.InvocationTargetException 在 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)在 java.lang.reflect.Method.invoke(未知来源)在 org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295) 在 org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433) 引起 by: java.lang.IllegalAccessError: 试图访问方法 com.google.common.collect.MapMaker.makeComputingMap(Lcom/google/common/base/Function;)Ljava/util/concurrent/ConcurrentMap; 来自 com.jolbox.bonecp.BoneCPDataSource 类 com.jolbox.bonecp.BoneCPDataSource.(BoneCPDataSource.java:64) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native 方法)在 sun.reflect.NativeConstructorAccessorImpl.newInstance(未知来源) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知 来源)在 java.lang.reflect.Constructor.newInstance(未知来源) 在 java.lang.Class.newInstance0(Unknown Source) 在 java.lang.Class.newInstance(未知来源)在 org.apache.naming.factory.BeanFactory.getObjectInstance(BeanFactory.java:143) 在 org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:140) 在 javax.naming.spi.NamingManager.getObjectInstance(未知来源) 在 org.apache.naming.NamingContext.lookup(NamingContext.java:793) 在 org.apache.naming.NamingContext.lookup(NamingContext.java:140) 在 org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:113) 在 org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71) 在 org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:137) 在 org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:144) 在 org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:109) 在 org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:81) 在 org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:120) 在 org.apache.catalina.core.StandardServer.start(StandardServer.java:693) 在 org.apache.catalina.startup.Catalina.start(Catalina.java:552) ... 还有 6 个

【问题讨论】:

    标签: tomcat jndi jtds bonecp


    【解决方案1】:

    https://stackoverflow.com/a/15656405/2408961

    这适用于 Play 框架,但是解决方案应该是相同的。 升级到 bonecp-0.8.0.RELEASE。 (Guava 15 似乎不适用于 bonecp-0.7.1.RELEASE)

    【讨论】:

      猜你喜欢
      • 2016-03-31
      • 2017-12-21
      • 2013-05-07
      • 1970-01-01
      • 2014-11-18
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      相关资源
      最近更新 更多