Не удалось загрузить класс фабрики ресурсов java.lang.ClassNotFoundException: com.jolbox.bonecp.BoneCPDataSource - PullRequest
1 голос
/ 09 марта 2012

Я хочу сделать пул соединений с помощью BoneCP. Но я получил журнал Не удалось загрузить класс фабрики ресурсов. Я получил этот журнал ошибок при запуске tomcat

SEVERE: Exception processing Global JNDI Resources
javax.naming.NamingException: Could not load resource factory class [Root exception is java.lang.ClassNotFoundException: com.jolbox.bonecp.BoneCPDataSource]
    at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:81)
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:304)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:793)
    at org.apache.naming.NamingContext.lookup(NamingContext.java:140)
    at org.apache.naming.NamingContextBindingsEnumeration.nextElementInternal(NamingContextBindingsEnumeration.java:113)
    at org.apache.naming.NamingContextBindingsEnumeration.next(NamingContextBindingsEnumeration.java:71)
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:137)
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.createMBeans(GlobalResourcesLifecycleListener.java:109)
    at org.apache.catalina.mbeans.GlobalResourcesLifecycleListener.lifecycleEvent(GlobalResourcesLifecycleListener.java:81)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:747)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.lang.ClassNotFoundException: com.jolbox.bonecp.BoneCPDataSource
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at org.apache.naming.factory.ResourceFactory.getObjectInstance(ResourceFactory.java:79)
    ... 17 more

Я добавил ресурс в server.xml следующим образом.

<GlobalNamingResources>
    <!-- Editable user database that can also be used by
         UserDatabaseRealm to authenticate users
    -->
    <Resource name="UserDatabase" auth="Container"
              type="org.apache.catalina.UserDatabase"
              description="User database that can be updated and saved"
              factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
              pathname="conf/tomcat-users.xml" />

        <Resource type='javax.sql.DataSource'
              name='demodb'
           factory='com.jolbox.bonecp.BoneCPDataSource'
   driverClassName='oracle.jdbc.driver.OracleDriver'
           jdbcUrl='jdbc:oracle:thin:@localhost:1521:XE'
          username='system'
          password='system'
        idleMaxAge='240'
     idleConnectionTestPeriod='60'
    partitionCount='3'
  acquireIncrement='5'
   maxConnectionsPerPartition='10'
   minConnectionsPerPartition='5'
          statementsCacheSize='50'
         releaseHelperThreads='5'
         />
  </GlobalNamingResources>

Может кто-нибудь сказать мне, в чем проблема?

Ответы [ 3 ]

0 голосов
/ 28 октября 2013

Вы должны добавить эту строку:

     <pathelement location="/path/bonecp-0.7.1.RELEASE.jar"/>

в ваш класс. Пожалуйста, исправьте путь, если вы хотите использовать Netbeans.

0 голосов
/ 09 декабря 2014

Иногда ошибка может возникать из-за перепутанных банок. В пуле соединений используется пользовательский загрузчик классов, и он не будет разрешать использование файлов JAR из разных версий BoneCP / Datanucleus.

0 голосов
/ 11 марта 2012

Исключение говорит о том, что класс com.jolbox.bonecp.BoneCPDataSource не найден.Вы убедились, что класс загружен сервером или вашим приложением?

Он должен находиться в одном из этих банок.

Надеюсь, это помогло, имейтеFun!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...