Не удается создать экземпляр диспетчера сохраняемости org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager

Я развернул Jackrabbit 2.6.4 в Glassfish 4 с помощью jackrabbit-jca-2.6.4.rar.

Все работает, когда я использую следующую конфигурацию (Derby через JDBC):

    <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.DerbyPersistenceManager">
      <param name="url" value="jdbc:derby:${wsp.home}/db;create=true"/>
      <param name="schemaObjectPrefix" value="${wsp.name}_"/>
    </PersistenceManager>

но когда я переключаюсь на это (Mysql через источник данных):

    <PersistenceManager class="org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager">
      <param name="url" value="jdbc/MySQLDataSource"/>
      <param name="driver" value="javax.naming.InitialContext"/>
      <param name="schemaObjectPrefix" value="${wsp.name}_"/>
    </PersistenceManager>

Я настроил пул подключений Mysql JDBC и ресурс подключения JDBC (jdbc / MySQLDataSource) в Glassfish и поместил mysql-connector-java-5.1.26-bin.jar в каталог domain / lib. Я могу успешно пропинговать базу данных через страницу Glassfish JDBC Connection Pool в пользовательском интерфейсе администратора.

Мне что-то не хватает в конфигурации JackRabbit PersistanceManager?

ОБНОВЛЕНИЕ 1

Если я не использую свой источник данных, а вместо этого использую URL-адрес JDBC в моей конфигурации PersistanceManager для подключения к базе данных, он работает должным образом.

Оказывается, пул соединений Mysql JDBC был настроен неправильно.


person lucasweb    schedule 28.10.2013    source источник


Ответы (1)


Чтобы заставить его работать, мне пришлось установить следующие свойства:

Мне также пришлось повторить имя базы данных и сервера в полях URL и URL, например.

  • Пароль
  • DatabaseName
  • Имя сервера
  • URL
  • URL
  • Нет свойств среды выполнения Поставщик базы данных: null Создание таблиц при развертывании: false Удалить таблицы при развертывании: false в класс com.pepedigital.omakase.template.boundary.TemplateManager: Ошибка поиска для 'java: comp / env / jcr / repository' в SerialContext [ myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming .factory.url.pkgs = com.sun.enterprise.naming} на com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject (InjectionManagerImpl.java:717) на com.sun.enterprise.container.common .impl.util.InjectionManagerImpl.inject (InjectionManagerImpl.java:484) по адресу com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.injectInstance (InjectionManagerImpl.java:170) по адресу org.glassfishInjectionServices.Implervices.weld.services. .aroundInject (InjectionServicesImpl.java:138) ... еще 70 Причина: javax.naming.NamingExcepti on: Ошибка поиска для 'java: comp / env / jcr / repository' в SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs = com.sun.enterprise.naming} [корневое исключение - javax.naming.CommunicationException: исключение связи для SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming. factory.url.pkgs = com.sun.enterprise.naming, com.sun.enterprise.naming.logicalName = java: comp / env / jcr / repository} [Основное исключение - java.lang.RuntimeException: javax.resource.ResourceException: Не удалось создать репозиторий: не удалось создать экземпляр диспетчера сохраняемости org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager]] в com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext. java: 491) в com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext.java:438) в javax.naming.InitialContext.lookup (InitialContext.java:411) в javax.naming.InitialContext.lookup (InitialContext .java: 411) в com.sun.enterprise.container.common.impl.util.InjectionManagerImpl._inject (InjectionManagerImpl.java:613) ... еще 73 Причина: javax.naming.CommunicationException: исключение связи для SerialContext [myEnv = {java.naming.factory.initial = com.sun.enterprise.naming.impl. SerialInitContextFactory, java.naming.factory.state = com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs = com.sun.enterprise.naming, com.sun.enterprise. naming.logicalName = java: comp / env / jcr / repository} [Корневое исключение - java.lang.RuntimeException: javax.resource.ResourceException: не удалось создать репозиторий: не удалось создать экземпляр диспетчера сохраняемости org.apache.jackrabbit.core.persistence.pool .MySqlPersistenceManager] в com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext.java:513) в com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext.java:438) в javax.naming. InitialContext.lookup (InitialContext.java:411) в javax.naming.InitialContext.lookup (InitialContext.java:411) в com.sun.enterprise.naming.util.JndiNamingObjectFactory.create (JndiNamingObjectFactory.java:90) в com.sun. .enterprise.naming.impl.GlassfishNamingManagerImpl.lookup (GlassfishNamingManagerImpl.java:745) в com.sun.enter prise.naming.impl.GlassfishNamingManagerImpl.lookup (GlassfishNamingManagerImpl.java:715) в com.sun.enterprise.naming.impl.JavaURLContext.lookup (JavaURLContext.java:159) в com.sun.enterprise.namingContext.impl.Serial lookup (SerialContext.java:471) ... еще 77 Причина: java.lang.RuntimeException: javax.resource.ResourceException: не удалось создать репозиторий: не удалось создать экземпляр диспетчера сохраняемости org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager в com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance (ConnectorObjectFactory.java:200) в javax.naming.spi.NamingManager.getObjectInstance (NamingManager.java:321) в com.sun.imprise.naming .getObjectInstance (SerialContext.java:527) в com.sun.enterprise.naming.impl.SerialContext.lookup (SerialContext.java:487) ... еще 85 Причина: javax.resource.ResourceException: не удалось создать репозиторий: невозможно создать экземпляр маны стойкости ger org.apache.jackrabbit.core.persistence.pool.MySqlPersistenceManager по адресу org.apache.jackrabbit.jca.JCAManagedConnectionFactory.createRepository (JCAManagedConnectionFactory.java:220) в org.apache.jackrabbit.java:220) по адресу org.apache.jackrabbit.java: 153) на com.sun.enterprise.resource.naming.ConnectorObjectFactory.getObjectInstance (ConnectorObjectFactory.java:156) ... еще 88]]

jdbc: mysql: //127.0.0.1: 3306 / имя_бД

На данный момент я не уверен, почему существуют свойства URL и URL, но установка обоих из них на указанный выше URL сработала.

Пользователь

person lucasweb    schedule 28.10.2013