2016-12-27 6 views
0

Я новичок в мире магнолий и стараюсь хранить JCR на базе базы данных вместо локальной файловой системы.Подключение Magnolia to SQL Server 2014

Я использую сервер Magnolia 5.4, SQLJDB42.jar и сервер SQL Server 2014 для того же самого. Я следовал все инструкции присутствующих на https://wiki.magnolia-cms.com/display/WIKI/Database-Only+Repositories+with+JNDI+Datasources и он работает с сервером MySQL, но когда я попробовал то же самое с SQL сервером 2014 он дает мне ошибку follwoing:

INFO info.magnolia.cms.beans.config.ConfigLoader 26.12.2016 17:28:29 -- Initializing content repositories INFO info.magnolia.repository.DefaultRepositoryManager 26.12.2016 17:28:29 -- Loading JCR INFO info.magnolia.repository.DefaultRepositoryManager 26.12.2016 17:28:29 -- Loading JCR magnolia INFO info.magnolia.jackrabbit.ProviderImpl 26.12.2016 17:28:29 -- Loading repository at C:\Users\665564\MagnoliaRepositories\author\repositories\magnolia (config file: C:\Users\665564\magnolia-5.5\apache-tomcat-8.5.5\webapps\magnoliaAuthor\WEB-INF\config\repo-conf\jackrabbit-bundle-mssql-search-pm.xml) - cluster id: "<unset>" DEBUG info.magnolia.jackrabbit.ProviderImpl 26.12.2016 17:28:29 -- No JNDI bound Repository found with name magnoliaAuthor, trying to initialize a new Repository ERROR org.apache.jackrabbit.core.util.db.ConnectionHelper 26.12.2016 17:28:31 -- Failed to execute SQL (stacktrace on DEBUG log level): com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '$'

Затем я сделал жесткое кодирование все переменный пути (как ${wsp.home}), и теперь я получаю указанные ниже ошибки:

INFO info.magnolia.init.MagnoliaServletContextListener 27.12.2016 13:50:06 -- Property sources loaded [DefaultMagnoliaConfigurationProperties with sources: [SystemPropertySource][ServletContextPropertySource from WEB-INF/config/magnoliaAuthor/magnolia.properties [ServletContextPropertySource from WEB-INF/config/magnoliaAuthor/magnolia.properties [ServletContextPropertySource from WEB-INF/config/default/magnolia.properties][ModulePropertiesSource from modules [core, dam, freemarker-support, lang-el, activation, categorization-support, ce-product-descriptor, imaging-support, resource-loader, rest-client, rest-integration, cache, config, i18n, rest-services, dam-jcr, ehcache, rendering, ui-framework, appswitcher, imaging, resteasy-client, scheduler, templating, ui-mediaeditor, resources, task-management, templating-jsp, ui-admincentral, about-app, cache-app, groovy, inplace-templating, log-tools, mail, messages-app, pages, resources-app, sample-app, security-app, site, ui-contentapp, cache-browser-app, contacts, dam-app, dam-imaging, dam-templating, definitions-app, form, google-sitemap, jcr-browser-app, jcr-tools, mte-imaging, site-app, mte, public-user-registration, forum, mtk, rssaggregator, categorization, commenting, lang-da, lang-ar, lang-cs, lang-de, lang-es, lang-fi, lang-fr, lang-he, lang-hr, lang-hu, lang-id, lang-it, lang-ja, lang-nl, lang-no, lang-pl, lang-pt, lang-pt_BR, lang-ru, lang-sk, lang-sq, lang-sv, lang-tr, lang-zh_CN, lang-zh_TW, travel-demo, tours, lang-ko, webapp]][InitPathsPropertySource]] INFO info.magnolia.cms.beans.config.ConfigLoader 27.12.2016 13:50:06 -- Initializing content repositories INFO info.magnolia.repository.DefaultRepositoryManager 27.12.2016 13:50:06 -- Loading JCR INFO info.magnolia.repository.DefaultRepositoryManager 27.12.2016 13:50:06 -- Loading JCR magnolia INFO info.magnolia.jackrabbit.ProviderImpl 27.12.2016 13:50:06 -- Loading repository at C:\Users\665564\magnolia-5.5\apache-tomcat-8.5.5\webapps\magnoliaAuthor\repositories\magnolia (config file: C:\Users\665564\magnolia-5.5\apache-tomcat-8.5.5\webapps\magnoliaAuthor\WEB-INF\config\repo-conf\jackrabbit-bundle-mssql-search.xml) - cluster id: "<unset>" WARN org.apache.jackrabbit.core.config.ConfigurationErrorHandler 27.12.2016 13:50:06 -- Warning parsing the configuration at line 4 using system id file:/C:/Users/665564/magnolia-5.5/apache-tomcat-8.5.5/webapps/magnoliaAuthor/WEB-INF/config/repo-conf/jackrabbit-bundle-mssql-search.xml: org.xml.sax.SAXParseException; systemId: file:/C:/Users/665564/magnolia-5.5/apache-tomcat-8.5.5/webapps/magnoliaAuthor/WEB-INF/config/repo-conf/jackrabbit-bundle-mssql-search.xml; lineNumber: 4; columnNumber: 32; Attribute "name" must be declared for element type "DataSources". WARN org.apache.jackrabbit.core.config.ConfigurationErrorHandler 27.12.2016 13:50:06 -- Warning parsing the configuration at line 11 using system id file:/C:/Users/665564/magnolia-5.5/apache-tomcat-8.5.5/webapps/magnoliaAuthor/WEB-INF/config/repo-conf/jackrabbit-bundle-mssql-search.xml: org.xml.sax.SAXParseException; systemId: file:/C:/Users/665564/magnolia-5.5/apache-tomcat-8.5.5/webapps/magnoliaAuthor/WEB-INF/config/repo-conf/jackrabbit-bundle-mssql-search.xml; lineNumber: 11; columnNumber: 17; The content of element type "DataSources" must match "(DataSource)*". ERROR info.magnolia.jackrabbit.ProviderImpl 27.12.2016 13:50:07 -- Unable to initialize repository: Unable to create or lock file C:\Users\665564\magnolia-5.5\apache-tomcat-8.5.5\webapps\magnoliaAuthor\repositories\magnolia\.lock javax.jcr.RepositoryException: **Unable to create or lock file C:\Users\665564\magnolia-5.5\apache-tomcat-8.5.5\webapps\magnoliaAuthor\repositories\magnolia\.lock** at org.apache.jackrabbit.core.util.RepositoryLock.tryLock(RepositoryLock.java:155) at org.apache.jackrabbit.core.util.RepositoryLock.acquire(RepositoryLock.java:138).

PFB, подробность моих repository.xml файла, это файл по умолчанию я не Ch Анж что-нибудь в том, что:

<!-- magnolia default repository --> 
<Repository name="magnolia" provider="info.magnolia.jackrabbit.ProviderImpl" loadOnStartup="true"> 
    <param name="configFile" value="${magnolia.repositories.jackrabbit.config}" /> 
    <param name="repositoryHome" value="${magnolia.repositories.home}/magnolia" /> 
    <!-- the default node types are loaded automatically 
    <param name="customNodeTypes" value="WEB-INF/config/repo-conf/nodetypes/magnolia_nodetypes.xml" /> --> 
    <param name="contextFactoryClass" value="org.apache.jackrabbit.core.jndi.provider.DummyInitialContextFactory" /> 
    <param name="providerURL" value="localhost" /> 
    <param name="bindName" value="${magnolia.webapp}" /> 
    <workspace name="website" /> 
    <workspace name="config" /> 
    <workspace name="users" /> 
    <workspace name="userroles" /> 
    <workspace name="usergroups" /> 
</Repository> </JCR> 

Когда я попытался с bindName="magnoliaAuthor" и абсолютным путем для configFile & magnolia.repositories.home, это дает мне нижеуказанную ошибку:

INFO info.magnolia.cms.beans.config.ConfigLoader 28.12.2016 16:30:40 -- Initializing content repositories INFO info.magnolia.repository.DefaultRepositoryManager 28.12.2016 16:30:40 -- Loading JCR INFO info.magnolia.repository.DefaultRepositoryManager 28.12.2016 16:30:40 -- Loading JCR magnolia INFO info.magnolia.jackrabbit.ProviderImpl 28.12.2016 16:30:40 -- Loading repository at C:\Users\665564\magnolia-5.5\apache-tomcat-8.5.5\webapps\magnoliaAuthor\repositories\magnolia (config file: C:/Users/665564/magnolia-5.5/apache-tomcat-8.5.5/webapps/magnoliaAuthor/WEB-INF/config/repo-conf/jackrabbit-bundle-mssql-search.xml) - cluster id: "<unset>" DEBUG info.magnolia.jackrabbit.ProviderImpl 28.12.2016 16:30:40 -- No JNDI bound Repository found with name magnoliaAuthor, trying to initialize a new Repository ERROR org.apache.jackrabbit.core.util.db.ConnectionHelper 28.12.2016 16:30:42 -- Failed to execute SQL (stacktrace on DEBUG log level): com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '$'. ERROR org.apache.jackrabbit.core.util.db.ConnectionHelper 28.12.2016 16:30:42 -- Failed to execute SQL (stacktrace on DEBUG log level): com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '$'. ERROR org.apache.jackrabbit.core.fs.db.DatabaseFileSystem 28.12.2016 16:30:42 -- failed to initialize file system com.microsoft.sqlserver.jdbc.SQLServerException: **Incorrect syntax near '$**'.

Пожалуйста, совет.

Заранее спасибо.

+0

Не можете добавить здесь свой файл "repository.xml"? – Ducaz035

+0

Здравствуйте, я добавил файл repository.xml в вопрос, потому что я не могу добавить здесь комментарии, пожалуйста, совет –

+0

Привет, Ducaz035. Не могли бы вы посоветовать, откуда он берет знак «$», поскольку я удалил все ' $ 'из repo-config.xml, а также из файла repository.xml. –

ответ

0

Несколько вещей здесь неправильно.

Во-первых, вы получите

No JNDI bound Repository found with name magnoliaAuthor

так подключение к JNDI не может быть найден. Где вы его настроили? В файле конфигурации tomcat? Сначала проверьте это, чтобы убедиться, что он настроен и правильно назван. Мое предположение было бы, что вы сделали ошибку, либо в настройке JNDI или при обращении к ним из jackrabbit-bundle-mssql-search

Во-вторых, после удаления всех переменных, ошибка вы получаете

jackrabbit-bundle-mssql-search.xml; lineNumber: 4; columnNumber: 32; Attribute "name" must be declared for element type "DataSources".

так, что случилось, что в то время как редактирование, по ошибке, вы удалили слишком много или вставили неправильный символ в xml-файл в строке 4, а файл теперь имеет недействительный синтаксис.

Еще одна вещь, которую я заметил, это то, что файлы журнала относятся к двум различным файлам - jackrabbit-bundle-mssql-search-pm.xml и jackrabbit-bundle-mssql-search.xml. Если вы не сделали это намеренно, возможно, это еще одна ошибка? В любом случае, содержание этого файла, скорее всего, имеет решающее значение, если вышеупомянутые два подсказки не помогают в решении вашей проблемы.

+0

Большое спасибо Ян, я получил свою ошибку, в файле «jackrabbit-bundle-mssql-search.xml» я использую для SQL сервер 2014, но я должен использовать теперь он работает нормально. –