« 返回到 Custom Deployments

Using Jackrabbit with Database

Steps to hooking up Jackrabbit to Oracle#

  1. Your install should already be connecting to Oracle through JDBC. Just in case you have not... (assume OCI to connect to Oracle.) Install the Oracle client on your server. Copy the ojdbc5.jar into \liferay-portal-5.2.3\tomcat-6.0.18\lib\. Then edit portal-ext.properties to include Database related properties.
  1. Edit the portal-ext.properties to include the following Jackrabbit related properties

5.2.3

##### Document Library Portlet #####
#
# Set the name of a class that implements
# com.liferay.documentlibrary.util.Hook. The
# document library server will use this persist documents.
#
# Available hooks are:
#     com.liferay.documentlibrary.util.FileSystemHook
#     com.liferay.documentlibrary.util.JCRHook
#     com.liferay.documentlibrary.util.S3Hook
#
#dl.hook.impl=com.liferay.documentlibrary.util.AdvancedFileSystemHook
#dl.hook.impl=com.liferay.documentlibrary.util.FileSystemHook
dl.hook.impl=com.liferay.documentlibrary.util.JCRHook
#dl.hook.impl=com.liferay.documentlibrary.util.S3Hook

#
# FileSystemHook
#
dl.hook.file.system.root.dir=${liferay.home}/data/document_library

#
# S3Hook
#
dl.hook.s3.access.key=
dl.hook.s3.secret.key=
dl.hook.s3.bucket.name=

#
# S3Hook
#
dl.hook.s3.access.key=
dl.hook.s3.secret.key=
dl.hook.s3.bucket.name=

#
# Set the maximum file size and valid file extensions for documents. A value
# of 0 for the maximum file size can be used to indicate unlimited file
# size. However, the maximum file size allowed is set in the property
# "com.liferay.portal.upload.UploadServletRequestImpl.max.size".
#
#dl.file.max.size=307200
#dl.file.max.size=1024000
dl.file.max.size=3072000

#
# A file extension of * will permit all file extensions.
#
# You can map a GIF for the extension by adding the image to the theme's
# image display and document library folder. The wildcard extension of *
# will be ignored. For example, the default image for the DOC extension
# would be found in: /html/themes/_unstyled/images/document_library/doc.gif.
#
dl.file.extensions=\
mp,.css,.doc,.docx,.dot,.gif,.gz,.htm,.html,.jpg,.js,.lar,.odb,.odf,\
dg,.odp,.ods,.odt,.pdf,.png,.ppt,.pptx,.rtf,.swf,.sxc,.sxi,.sxw,.tar,\
iff,.tgz,.txt,.vsd,.xls,.xlsx,.xml,.zip,.jrxml

#
# Set which files extensions are comparable by the diff tool. If OpenOffice
# integration is enabled, then it is also possible to compare some binary
# files that are convertable to text.
#
dl.comparable.file.extensions=.css,.js,.htm,.html,.txt,.xml
#dl.comparable.file.extensions=.css,.doc,.js,.htm,.html,.odt,.rtf,.sxw,.txt,.xml

#
# Set folder names that will be used to synchronize with a community's set
# of private and public layouts. This will allow users to manage layouts
# using the Document Library portlet, and ultimately, via WebDAV. This
# feature is experimental.
#
dl.layouts.sync.enabled=false
dl.layouts.sync.private.folder=Pages - Private
dl.layouts.sync.public.folder=Pages - Public

#
# Set this to true to enable comments for document library files.
#
dl.file.entry.comments.enabled=true

#
# Set this to true to enable file rank for document library files.
#
dl.file.rank.enabled=true
**5.2.3**
##### JCR #####
jcr.initialize.on.startup=false

jcr.workspace.name=liferay
jcr.node.documentlibrary=documentlibrary

jcr.jackrabbit.repository.root=${liferay.home}/data/jackrabbit
jcr.jackrabbit.config.file.path=${jcr.jackrabbit.repository.root}/repository.xml
jcr.jackrabbit.repository.home=${jcr.jackrabbit.repository.root}/home
jcr.jackrabbit.credentials.username=none
jcr.jackrabbit.credentials.password=none             
  1. Edit the /jackrabbit/repository.xml

5.2.3

<?xml version="1.0"?>

<Repository>
	<!-- Commented out to move to DB
	<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
		<param name="path" value="${rep.home}/repository" />
	</FileSystem>
  -->
	<!--
	Database File System (Cluster Configuration)

	This is sample configuration for mysql persistence that can be used for
	clustering Jackrabbit. For other databases, change the connection,
	credentials, and schema settings.
	-->
  <!--Uncomment to move to DB -->
	<!-- Change to Oracle Class <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem"> -->
	<FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
		<param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
		<param name="url" value="jdbc:oracle:oci:@portal" />
		<param name="user" value="user" />
		<param name="password" value="password" />
		<!-- The following value must oracle for oracle server this is not the same as the database schema -->
		<param name="schema" value="oracle"/>
		<param name="schemaObjectPrefix" value="J_R_FS_"/>
	</FileSystem>
  <!-- -->
	<Security appName="Jackrabbit">
		<AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager" />
		<LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
			<param name="anonymousId" value="anonymous" />
		</LoginModule>
	</Security>
	<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="liferay" />
	<Workspace name="${wsp.name}">
		<!-- Commented out to move to DB
		<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
			<param name="path" value="${wsp.home}" />
		</FileSystem>
		
		<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager" />
    --> 
		<!--
		Database File System and Persistence (Cluster Configuration)

		This is sample configuration for mysql persistence that can be used for
		clustering Jackrabbit. For other databases, change the  connection,
		credentials, and schema settings.
		-->

		<!--  Uncommented to move to DB-->
		<!-- Change to Oracle Class <PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager"> -->
		<PersistenceManager class="org.apache.jackrabbit.core.state.db.OraclePersistenceManager">
			<param name="driver" value="oracle.jdbc.driver.OracleDriver" />
			<param name="url" value="jdbc:oracle:oci:@portal" />
			<param name="user" value="user" />
			<param name="password" value="password" />
			<param name="tableSpace" value="" />
			<!-- The following value must oracle for oracle server this is not the same as the database schema -->
			<param name="schema" value="oracle" />
			<param name="schemaObjectPrefix" value="J_PM_${wsp.name}_" />
			<param name="externalBLOBs" value="false" />
		</PersistenceManager>
		<!-- Change to Oracle Class <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem"> -->
		<FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
			<param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
			<param name="url" value="jdbc:oracle:oci:@portal" />
			<param name="user" value="user" />
			<param name="password" value="password" />
			<!-- The following value must oracle for oracle server this is not the same as the database schema -->
			<param name="schema" value="oracle"/>
			<param name="schemaObjectPrefix" value="J_FS_${wsp.name}_"/>
		</FileSystem>
		<!-- -->
	</Workspace>
	<Versioning rootPath="${rep.home}/version">
		<!-- Comment to move to DB 
		<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
			<param name="path" value="${rep.home}/version" />
		</FileSystem>
		<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager" />
    -->
		<!--
		Database File System and Persistence (Cluster Configuration)

		This is sample configuration for mysql persistence that can be used for
		clustering Jackrabbit. For other databases, change the connection,
		credentials, and schema settings.
		-->

    <!-- Uncomment to move to DB -->
		<!-- Change to Oracle Class <FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem"> -->
		<FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
			<param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
			<param name="url" value="jdbc:oracle:oci:@portal" />
			<param name="user" value="user" />
			<param name="password" value="password" />
			<!-- The following value must oracle for oracle server this is not the same as the database schema -->
			<param name="schema" value="oracle"/>
			<param name="schemaObjectPrefix" value="J_V_FS_"/>
		</FileSystem>
		<!-- Change to Oracle Class <PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager"> -->
		<PersistenceManager class="org.apache.jackrabbit.core.state.db.OraclePersistenceManager">
			<param name="driver" value="oracle.jdbc.driver.OracleDriver" />
			<param name="url" value="jdbc:oracle:oci:@portal" />
			<param name="user" value="user" />
			<param name="password" value="password" />
			<param name="tableSpace" value="" />
			<!-- The following value must oracle for oracle server this is not the same as the database schema -->
			<param name="schema" value="oracle" />
			<param name="schemaObjectPrefix" value="J_V_PM_" />
			<param name="externalBLOBs" value="false" />
		</PersistenceManager>
	  <!-- -->
	</Versioning>

	<!--
	Cluster Configuration

	This is sample configuration for mysql persistence that can be used for
	clustering Jackrabbit. For other databases, change the  connection,
	credentials, and schema settings.
	-->
    
    <!-- Uncomment to move to database -->
    <Cluster id="node_1" syncDelay="2000">
		<!-- Change to Oracle Class <Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal"> -->
	  <Journal class="org.apache.jackrabbit.core.journal.OracleDatabaseJournal">
			<!-- <param name="revision" value="${rep.home}/revision"/> -->
			<param name="revision" value="${rep.home}/revision.log"/>
			<param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
			<param name="url" value="jdbc:oracle:oci:@portal"/>
			<param name="user" value="user"/>
			<param name="password" value="password"/>
			<!-- The following value must oracle for oracle server this is not the same as the database schema -->
			<param name="schema" value="oracle"/>
			<param name="schemaObjectPrefix" value="J_C_"/>
		</Journal>
    </Cluster>
    <!-- -->
</Repository>

6.0.11

The configuration for Liferay 6.0.11 is the same as with 5.2.3 with one difference. The persistence manager in this version should be org.apache.jackrabbit.core.persistence.bundle.OraclePersistenceManager instead of org.apache.jackrabbit.core.persistence.db.OraclePersistenceManager

Steps to hooking up Jackrabbit to MySQL#

  1. Edit the portal-ext.properties to include jcr.jackrabbit.repository.root=/directory/to/jackrabbit/root
  2. Modify the jcr.jackrabbit.repository.root=/directory/to/jackrabbit/root/repository.xml to look like

4.3.X - 4.4.X

<?xml version="1.0"?>

<Repository>
	<!--
	<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
		<param name="path" value="${rep.home}/repository" />
	</FileSystem>
	-->

	<!--
	Database File System (Cluster Configuration)

	This is sample configuration for mysql persistence that can be used for
	clustering Jackrabbit. For other databases, change the connection,
	credentials, and schema settings.
	-->

	<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
		<param name="driver" value="com.mysql.jdbc.Driver"/>
		<param name="url" value="jdbc:mysql://localhost:3306/lportal?useUnicode=true&#038;amp&#059;characterEncoding=UTF-8" />
		<param name="user" value="username" />
		<param name="password" value="asdf" />
		<param name="schema" value="mysql"/>
		<param name="schemaObjectPrefix" value="J_R_FS_"/>
	</FileSystem>

	<Security appName="Jackrabbit">
		<AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager" />
		<LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
			<param name="anonymousId" value="anonymous" />
		</LoginModule>
	</Security>
	<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="liferay" />
	<Workspace name="${wsp.name}">
		<!--
		<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
			<param name="path" value="${wsp.home}" />
		</FileSystem>
		<PersistenceManager class="org.apache.jackrabbit.core.state.xml.XMLPersistenceManager" />
		-->

		<!--
		Database File System and Persistence (Cluster Configuration)

		This is sample configuration for mysql persistence that can be used for
		clustering Jackrabbit. For other databases, change the  connection,
		credentials, and schema settings.
		-->

		<PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
			<param name="driver" value="com.mysql.jdbc.Driver"/>
			<param name="url" value="jjdbc:mysql://localhost:3306/lportal?useUnicode=true&#038;amp&#059;characterEncoding=UTF-8" />
			<param name="user" value="username" />
			<param name="password" value="asdf" />
			<param name="schema" value="mysql"/>
			<param name="schemaObjectPrefix" value="J_PM_${wsp.name}_" />
			<param name="externalBLOBs" value="false" />
		</PersistenceManager>
		<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
			<param name="driver" value="com.mysql.jdbc.Driver"/>
			<param name="url" value="jjdbc:mysql://localhost:3306/lportal?useUnicode=true&#038;amp&#059;characterEncoding=UTF-8" />
			<param name="user" value="username" />
			<param name="password" value="asdf" />
			<param name="schema" value="mysql"/>
			<param name="schemaObjectPrefix" value="J_FS_${wsp.name}_"/>
		</FileSystem>
	</Workspace>
	<Versioning rootPath="${rep.home}/version">
		<!--
		<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
			<param name="path" value="${rep.home}/version" />
		</FileSystem>
		<PersistenceManager class="org.apache.jackrabbit.core.state.xml.XMLPersistenceManager" />
		-->

		<!--
		Database File System and Persistence (Cluster Configuration)

		This is sample configuration for mysql persistence that can be used for
		clustering Jackrabbit. For other databases, change the connection,
		credentials, and schema settings.
		-->

		<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
			<param name="driver" value="com.mysql.jdbc.Driver"/>
			<param name="url" value="jjdbc:mysql://localhost:3306/lportal?useUnicode=true&#038;amp&#059;characterEncoding=UTF-8" />
			<param name="user" value="username" />
			<param name="password" value="asdf" />
			<param name="schema" value="mysql"/>
			<param name="schemaObjectPrefix" value="J_V_FS_"/>
		</FileSystem>
		<PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
			<param name="driver" value="com.mysql.jdbc.Driver"/>
			<param name="url" value="jjdbc:mysql://localhost:3306/lportal?useUnicode=true&#038;amp&#059;characterEncoding=UTF-8" />
			<param name="user" value="username" />
			<param name="password" value="asdf" />
			<param name="schema" value="mysql"/>
			<param name="schemaObjectPrefix" value="J_V_PM_" />
			<param name="externalBLOBs" value="false" />
		</PersistenceManager>
	</Versioning>

	<!--
	Cluster Configuration

	This is sample configuration for mysql persistence that can be used for
	clustering Jackrabbit. For other databases, change the  connection,
	credentials, and schema settings.
	-->

	<!--
    <Cluster id="node_1" syncDelay="5">
		<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
			<param name="revision" value="${rep.home}/revision"/>
			<param name="driver" value="com.mysql.jdbc.Driver"/>
			<param name="url" value="jjdbc:mysql://localhost:3306/lportal?useUnicode=true&#038;amp&#059;characterEncoding=UTF-8" />
			<param name="user" value="username" />
			<param name="password" value="asdf" />
			<param name="schema" value="mysql"/>
			<param name="schemaObjectPrefix" value="J_C_"/>
		</Journal>
    </Cluster>
	-->

</Repository>

4.0-4.2

 <?xml version="1.0"?>

 <Repository>
    <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
        <param name="path" value="${rep.home}/repository" />
    </FileSystem>
    <Security appName="Jackrabbit">
        <AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager" />
        <LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
            <param name="anonymousId" value="anonymous" />
        </LoginModule>
    </Security>
    <Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="liferay" />
    <Workspace name="${wsp.name}">
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${wsp.home}" />
        </FileSystem>

        <!-- MySQL Server -->

        <PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
            <param name="driver" value="com.mysql.jdbc.Driver" />
            <param name="url" value="jdbc:mysql://localhost:3306/lportal?useUnicode=true&#038;amp&#059;characterEncoding=UTF-8" />
            <param name="user" value="username" />
            <param name="password" value="password" />
            <param name="schema" value="mysql" />
            <param name="schemaObjectPrefix" value="JACKRABBIT_${wsp.name}_" />
            <param name="externalBLOBs" value="false" />
        </PersistenceManager>
    </Workspace>
    <Versioning rootPath="${rep.home}/version">
        <FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
            <param name="path" value="${rep.home}/version" />
        </FileSystem>

        <!-- MySQL Server -->
       
        <PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
            <param name="driver" value="com.mysql.jdbc.Driver" />
            <param name="url" value="jdbc:mysql://localhost:3306/lportal?useUnicode=true&#038;amp&#059;characterEncoding=UTF-8" />
            <param name="user" value="username" />
            <param name="password" value="password" />
            <param name="schema" value="mysql" />
            <param name="schemaObjectPrefix" value="JACKRABBIT_VERSION_" />
            <param name="externalBLOBs" value="false" />
        </PersistenceManager>
    </Versioning>
 </Repository>

Restart Liferay, for MySQL the table lportal should automatically be created

  1. If you are using HSQLDB, set schema to "default" like below:
<?xml version="1.0"?>
<Repository>
	<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
		<param name="path" value="${rep.home}/repository" />
	</FileSystem>
	<Security appName="Jackrabbit">
		<AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager" />
		<LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
			<param name="anonymousId" value="anonymous" />
		</LoginModule>
	</Security>
	<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="liferay" />
	<Workspace name="${wsp.name}">
		<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
			<param name="path" value="${wsp.home}" />
		</FileSystem>
		<PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
			<param name="driver" value="org.hsqldb.jdbcDriver" />
			<param name="url" value="jdbc:hsqldb:hsql://127.0.0.1:9001/lportal" />
			<param name="user" value="sa" />
			<param name="password" value="" />
			<param name="schema" value="default" />
			<param name="schemaObjectPrefix" value="JACKRABBIT_${wsp.name}_" />
			<param name="externalBLOBs" value="true" />
		</PersistenceManager>
	</Workspace>
	<Versioning rootPath="${rep.home}/version">
		<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
			<param name="path" value="${rep.home}/version" />
		</FileSystem>
		<PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
			<param name="driver" value="org.hsqldb.jdbcDriver" />
			<param name="url" value="jdbc:hsqldb:hsql://127.0.0.1:9001/lportal" />
			<param name="user" value="sa" />
			<param name="password" value="" />
			<param name="schema" value="default" />
			<param name="schemaObjectPrefix" value="JACKRABBIT_VERSION_" />
			<param name="externalBLOBs" value="true" />
		</PersistenceManager>
	</Versioning>
</Repository>

Things to note#

  • Make sure that the user/password has the correct permissions on the DB (in this case lportal)
  • If you wish to use a separate DB than the one Liferay portal uses, just create it, give user correct permissions and change the url in the sample above.
  • Note that there is an LEP on having to rename jackrabbit dir to jackrabbit.bak, then restart, and a new jackrabbit dir will be created - have to then modify that repository.xml file.
  • TBD: is there a way to do this if you have already been using the file system as the repository (a clean way to 'move' over to DB system)?
  • When pointing Jackrabbit to the database, Liferay will create a file called workspaces.xml, in /home/workspaces/liferay/workspaces.xml. This will contain a portion of the repository.xml file. If you make changes to repository.xml, make sure you also make the changes to this workspaces.xml file.
  • A specific 'Bundle Database PM' like 'org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager' should be faster.
  • If you want to use the same database that liferay is already using, set the driver to "javax.naming.InitialContext" and the url to "java:comp/env/jdbc/LiferayPool"

External documentation#

0 附件
96216 查看
平均 (1 投票)
满分为 5,平均得分为 4.0。
评论
讨论主题回复 作者 日期
Will this work with Liferay 5.1? We are... Carlos del Castillo 2008年9月27日 下午4:07
did you ever figure this error out? We are... Brian Scott Schupbach 2009年6月20日 下午5:21
Hi Carlos, Did you ever figure out what was... Brian Scott Schupbach 2009年6月22日 上午7:10
I believe the error is caused by the "schema"... Ben Hidalgo 2009年9月30日 上午11:58
The docs seems to say: use schema="oracle" for... Ben Hidalgo 2009年9月30日 下午1:26
it actually creates a workspace.xml file based... Ben Hidalgo 2009年9月30日 下午2:06
Hi, I'm trying to hook up Jackrabbit to use... Daniel Lupescu 2009年4月6日 上午5:06
In case this is helpfull for anyone, I managed... Joao Sequeira 2010年5月3日 上午9:26
What are the steps for hooking up jackrabbit to... Andy Phelps 2011年8月19日 上午7:02
As far as I can tell, using a DataSource does... Thomas Kellerer 2009年11月17日 上午12:49
HI, I am trying to integrate jackrabbit in... Sayan Dhar Chowdhury 2014年4月14日 上午10:53

Will this work with Liferay 5.1? We are configuring Liferay in several servers but we need the Jackrabbit content to be stored in the database for this.

After configuring this we are seeing some errors when we have concurrent requests, we are using MySQL with InnoDB as the database.

22:50:02,207 ERROR [AbstractFlushingEventListener:301] Could not synchronize database state with session
org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1
at org.hibernate.jdbc.Expectations$BasicExpectation.checkBatched(Expectations.java:­61)
at org.hibernate.jdbc.Expectations$BasicExpectation.verifyOutcome(Expectations.java­:46)
at org.hibernate.jdbc.BatchingBatcher.checkRowCounts(BatchingBatcher.java:68)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:266)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:172)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(Abstract­FlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListe­ner.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at com.liferay.portal.dao.orm.hibernate.LiferaySession.flush(LiferaySession.java:17­1)
at com.liferay.portal.dao.orm.hibernate.SessionImpl.flush(SessionImpl.java:87)
at com.liferay.portlet.documentlibrary.service.persistence.DLFileRankPersistenceImp­l.removeImpl(DLFileRankPersistenceImpl.java:131)
at com.liferay.portlet.documentlibrary.service.persistence.DLFileRankPersistenceImp­l.remove(DLFileRankPersistenceImpl.java:111)
at com.liferay.portlet.documentlibrary.service.persistence.DLFileRankPersistenceImp­l.removeByC_U_F_N(DLFileRankPersistenceImpl.java:1069)
at com.liferay.portlet.documentlibrary.service.impl.DLFileRankLocalServiceImpl.upda­teFileRank(DLFileRankLocalServiceImpl.java:71)
at com.liferay.portlet.documentlibrary.service.impl.DLFileEntryLocalServiceImpl.get­FileAsStream(DLFileEntryLocalServiceImpl.java:527)
at sun.reflect.GeneratedMethodAccessor580.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils­.java:310)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(Ref­lectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM­ethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(Transa­ctionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveM­ethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.j­ava:204)
at $Proxy214.getFileAsStream(Unknown Source)
at com.liferay.portlet.documentlibrary.service.DLFileEntryLocalServiceUtil.getFileA­sStream(DLFileEntryLocalServiceUtil.java:323)
在 08-9-27 下午4:07 发帖。
Hi, I'm trying to hook up Jackrabbit to use Oracle 10g XE.

Configuration :
- Windows XP
- Liferay 5.2.2 bundled with Tomcat 6.0.18

portal-ext.properties:

jdbc.default.driverClassName=oracle.jdbc.driver.OracleDriver
jdbc.default.url=jdb­c:oracle:thin:@localhost:1521:xe
jdbc.default.username=liferay
jdbc.default.passwo­rd=liferay
liferay.home=c:/liferay
jcr.initialize.on.startup=true
jcr.jackrabbit.re­pository.root=${liferay.home}/data/jackrabbit
jcr.jackrabbit.config.file.path=${j­cr.jackrabbit.repository.root}/repository.xml
dl.hook.impl=com.liferay.documentli­brary.util.JCRHook

repository.xml:

<?xml version="1.0"?>

<Repository>
<!--<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/repository" />
</FileSystem>


Database File System (Cluster Configuration)

This is sample configuration for mysql persistence that can be used for
clustering Jackrabbit. For other databases, change the connection,
credentials, and schema settings.
-->

<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<param name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe" />
<param name="user" value="liferay" />
<param name="password" value="liferay" />
<param name="schemaObjectPrefix" value="J_R_FS_"/>
</FileSystem>

<Security appName="Jackrabbit">
<AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager" />
<LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
<param name="anonymousId" value="anonymous" />
</LoginModule>
</Security>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="liferay" />
<Workspace name="${wsp.name}">
<!--<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"­ />


Database File System and Persistence (Cluster Configuration)

This is sample configuration for mysql persistence that can be used for
clustering Jackrabbit. For other databases, change the connection,
credentials, and schema settings.
-->

<PersistenceManager class="org.apache.jackrabbit.core.persistence.db.OraclePersistenceManager">
<param name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe"/>
<param name="user" value="liferay"/>
<param name="password" value="liferay"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
<param name="tableSpace" value=""/>
<param name="externalBLOBs" value="false"/>
</PersistenceManager>
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="oracle.jdbc.driver.OracleDriver"/>
<param name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:xe" />
<param name="user" value="liferay" />
<param name="password" value="liferay" />
<param name="schemaObjectPrefix" value="J_FS_${wsp.name}_"/>
</FileSystem>


<!--<PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
<pa­ram name="driver" value="com.mysql.jdbc.Driver" />
<param name="url" value="jdbc:mysql://localhost/jcr" />
<param name="user" value="" />
<param name="password" value="" />
<param name="schema" value="mysql" />
<param name="schemaObjectPrefix" value="J_PM_${wsp.name}_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="com.mysql.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://localhost/jcr" />
<param name="user" value="" />
<param name="password" value="" />
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="J_FS_${wsp.name}_"/>
</FileSystem>-->
</Workspace>
<Versioning rootPath="${rep.home}/version">
<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/version" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"­ />

<!--
Database File System and Persistence (Cluster Configuration)

This is sample configuration for mysql persistence that can be used for
clustering Jackrabbit. For other databases, change the connection,
credentials, and schema settings.
-->

<!--<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="com.mysql.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://localhost/jcr" />
<param name="user" value="" />
<param name="password" value="" />
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="J_V_FS_"/>
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
<pa­ram name="driver" value="com.mysql.jdbc.Driver" />
<param name="url" value="jdbc:mysql://localhost/jcr" />
<param name="user" value="" />
<param name="password" value="" />
<param name="schema" value="mysql" />
<param name="schemaObjectPrefix" value="J_V_PM_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>-->
</Versioning>

<!--
Cluster Configuration

This is sample configuration for mysql persistence that can be used for
clustering Jackrabbit. For other databases, change the connection,
credentials, and schema settings.
-->

<!--<Cluster id="node_1" syncDelay="5">
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
<param name="revision" value="${rep.home}/revision"/>
<param name="driver" value="com.mysql.jdbc.Driver"/>
<param name="url" value="jdbc:mysql://localhost/jcr"/>
<param name="user" value=""/>
<param name="password" value=""/>
<param name="schema" value="mysql"/>
<param name="schemaObjectPrefix" value="J_C_"/>
</Journal>
</Cluster>-->
</Repository>


But I have the following error:


11:49:33,941 ERROR [DbFileSystem:195] failed to initialize file system
java.sql.SQLException: ORA-00906: missing left parenthesis

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:116­8)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatem
ent.java:16­14)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java
:1579)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.checkSchema(Datab
aseFileSyst­em.java:1169)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:181)
at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(F
ileSystemCo­nfig.java:47)
at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:
244)
at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:
557)
at org.apache.jackrabbit.core.TransientRepository$2.getRepository(Transi
entReposito­ry.java:245)
at org.apache.jackrabbit.core.TransientRepository.startRepository(Transi
entReposito­ry.java:265)
at org.apache.jackrabbit.core.TransientRepository.login(TransientReposit
ory.java:33­3)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.createSession(JCRFac
toryImpl.ja­va:81)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.initialize(JCRFactor
yImpl.java:­96)
at com.liferay.portal.jcr.JCRFactoryUtil.initialize(JCRFactoryUtil.java:
62)
at com.liferay.portal.events.GlobalStartupAction.run(GlobalStartupAction
.java:173)
at com.liferay.portal.events.EventsProcessor._processEvent(EventsProcess
or.java:166­)
at com.liferay.portal.events.EventsProcessor._process(EventsProcessor.ja
va:118)
at com.liferay.portal.events.EventsProcessor.process(EventsProcessor.jav
a:54)
at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:478)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:1172)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:99
2)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex
t.java:4058­)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4
371)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:77
1)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.ja
va:627)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.j
ava:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488
)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.ja­va:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443
)
at org.apache.catalina.core.StandardService.start(StandardService.java:5
16)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710
)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
11:49:33,941 ERROR [RepositoryImpl:343] failed to start Repository: File system
initialization failure.: failed to initialize file system
org.apache.jackrabbit.core.config.ConfigurationException: File system initializa
tion failure.: failed to initialize file system: failed to initialize file syste
m
at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(F
ileSystemCo­nfig.java:54)
at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:
244)
at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:
557)
at org.apache.jackrabbit.core.TransientRepository$2.getRepository(Transi
entReposito­ry.java:245)
at org.apache.jackrabbit.core.TransientRepository.startRepository(Transi
entReposito­ry.java:265)
at org.apache.jackrabbit.core.TransientRepository.login(TransientReposit
ory.java:33­3)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.createSession(JCRFac
toryImpl.ja­va:81)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.initialize(JCRFactor
yImpl.java:­96)
at com.liferay.portal.jcr.JCRFactoryUtil.initialize(JCRFactoryUtil.java:
62)
at com.liferay.portal.events.GlobalStartupAction.run(GlobalStartupAction
.java:173)
at com.liferay.portal.events.EventsProcessor._processEvent(EventsProcess
or.java:166­)
at com.liferay.portal.events.EventsProcessor._process(EventsProcessor.ja
va:118)
at com.liferay.portal.events.EventsProcessor.process(EventsProcessor.jav
a:54)
at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:478)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:1172)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:99
2)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex
t.java:4058­)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4
371)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:77
1)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.ja
va:627)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.j
ava:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488
)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.ja­va:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443
)
at org.apache.catalina.core.StandardService.start(StandardService.java:5
16)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710
)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to initiali
ze file system
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:196)
at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(F
ileSystemCo­nfig.java:47)
... 40 more
Caused by: java.sql.SQLException: ORA-00906: missing left parenthesis

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:116­8)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatem
ent.java:16­14)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java
:1579)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.checkSchema(Datab
aseFileSyst­em.java:1169)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:181)
... 41 more
org.apache.jackrabbit.core.fs.FileSystemException: failed to initialize file sys
tem
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:196)
at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(F
ileSystemCo­nfig.java:47)
at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:
244)
at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:
557)
at org.apache.jackrabbit.core.TransientRepository$2.getRepository(Transi
entReposito­ry.java:245)
at org.apache.jackrabbit.core.TransientRepository.startRepository(Transi
entReposito­ry.java:265)
at org.apache.jackrabbit.core.TransientRepository.login(TransientReposit
ory.java:33­3)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.createSession(JCRFac
toryImpl.ja­va:81)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.initialize(JCRFactor
yImpl.java:­96)
at com.liferay.portal.jcr.JCRFactoryUtil.initialize(JCRFactoryUtil.java:
62)
at com.liferay.portal.events.GlobalStartupAction.run(GlobalStartupAction
.java:173)
at com.liferay.portal.events.EventsProcessor._processEvent(EventsProcess
or.java:166­)
at com.liferay.portal.events.EventsProcessor._process(EventsProcessor.ja
va:118)
at com.liferay.portal.events.EventsProcessor.process(EventsProcessor.jav
a:54)
at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:478)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:1172)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:99
2)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex
t.java:4058­)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4
371)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:77
1)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.ja
va:627)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.j
ava:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488
)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.ja­va:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443
)
at org.apache.catalina.core.StandardService.start(StandardService.java:5
16)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710
)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.sql.SQLException: ORA-00906: parenthèse de gauche absente

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:116­8)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatem
ent.java:16­14)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java
:1579)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.checkSchema(Datab
aseFileSyst­em.java:1169)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:181)
... 41 more
11:49:33,957 ERROR [JCRFactoryImpl:84] Could not login to the workspace null
11:49:33,957 ERROR [JCRFactoryImpl:99] Could not initialize Jackrabbit
11:49:33,957 ERROR [GlobalStartupAction:177]
javax.jcr.RepositoryException: Invalid repository configuration: c:/liferay/data
/jackrabbit/repository.xml: File system initialization failure.: failed to
to initialize file system
at org.apache.jackrabbit.core.TransientRepository$2.getRepository(Transi
entReposito­ry.java:250)
at org.apache.jackrabbit.core.TransientRepository.startRepository(Transi
entReposito­ry.java:265)
at org.apache.jackrabbit.core.TransientRepository.login(TransientReposit
ory.java:33­3)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.createSession(JCRFac
toryImpl.ja­va:81)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.initialize(JCRFactor
yImpl.java:­96)
at com.liferay.portal.jcr.JCRFactoryUtil.initialize(JCRFactoryUtil.java:
62)
at com.liferay.portal.events.GlobalStartupAction.run(GlobalStartupAction
.java:173)
at com.liferay.portal.events.EventsProcessor._processEvent(EventsProcess
or.java:166­)
at com.liferay.portal.events.EventsProcessor._process(EventsProcessor.ja
va:118)
at com.liferay.portal.events.EventsProcessor.process(EventsProcessor.jav
a:54)
at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:478)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:1172)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:99
2)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex
t.java:4058­)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4
371)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:77
1)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.ja
va:627)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.j
ava:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488
)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.ja­va:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443
)
at org.apache.catalina.core.StandardService.start(StandardService.java:5
16)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710
)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: org.apache.jackrabbit.core.config.ConfigurationException: File system
initialization failure.: failed to initialize file system: failed to initialize
file system
at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(F
ileSystemCo­nfig.java:54)
at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:
244)
at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:
557)
at org.apache.jackrabbit.core.TransientRepository$2.getRepository(Transi
entReposito­ry.java:245)
... 37 more
Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to initiali
ze file system
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:196)
at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(F
ileSystemCo­nfig.java:47)
... 40 more
Caused by: java.sql.SQLException: ORA-00906: missing left parenthesis

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:116­8)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatem
ent.java:16­14)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java
:1579)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.checkSchema(Datab
aseFileSyst­em.java:1169)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:181)
... 41 more
org.apache.jackrabbit.core.config.ConfigurationException: File system initializa
tion failure.: failed to initialize file system: failed to initialize file syste
m
at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(F
ileSystemCo­nfig.java:54)
at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:
244)
at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:
557)
at org.apache.jackrabbit.core.TransientRepository$2.getRepository(Transi
entReposito­ry.java:245)
at org.apache.jackrabbit.core.TransientRepository.startRepository(Transi
entReposito­ry.java:265)
at org.apache.jackrabbit.core.TransientRepository.login(TransientReposit
ory.java:33­3)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.createSession(JCRFac
toryImpl.ja­va:81)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.initialize(JCRFactor
yImpl.java:­96)
at com.liferay.portal.jcr.JCRFactoryUtil.initialize(JCRFactoryUtil.java:
62)
at com.liferay.portal.events.GlobalStartupAction.run(GlobalStartupAction
.java:173)
at com.liferay.portal.events.EventsProcessor._processEvent(EventsProcess
or.java:166­)
at com.liferay.portal.events.EventsProcessor._process(EventsProcessor.ja
va:118)
at com.liferay.portal.events.EventsProcessor.process(EventsProcessor.jav
a:54)
at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:478)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:1172)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:99
2)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex
t.java:4058­)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4
371)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:77
1)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.ja
va:627)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.j
ava:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488
)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.ja­va:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443
)
at org.apache.catalina.core.StandardService.start(StandardService.java:5
16)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710
)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: org.apache.jackrabbit.core.fs.FileSystemException: failed to initiali
ze file system
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:196)
at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(F
ileSystemCo­nfig.java:47)
... 40 more
Caused by: java.sql.SQLException: ORA-00906: parenthèse de gauche absente

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:116­8)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatem
ent.java:16­14)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java
:1579)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.checkSchema(Datab
aseFileSyst­em.java:1169)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:181)
... 41 more
org.apache.jackrabbit.core.fs.FileSystemException: failed to initialize file sys
tem
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:196)
at org.apache.jackrabbit.core.config.FileSystemConfig.createFileSystem(F
ileSystemCo­nfig.java:47)
at org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:
244)
at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:
557)
at org.apache.jackrabbit.core.TransientRepository$2.getRepository(Transi
entReposito­ry.java:245)
at org.apache.jackrabbit.core.TransientRepository.startRepository(Transi
entReposito­ry.java:265)
at org.apache.jackrabbit.core.TransientRepository.login(TransientReposit
ory.java:33­3)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.createSession(JCRFac
toryImpl.ja­va:81)
at com.liferay.portal.jcr.jackrabbit.JCRFactoryImpl.initialize(JCRFactor
yImpl.java:­96)
at com.liferay.portal.jcr.JCRFactoryUtil.initialize(JCRFactoryUtil.java:
62)
at com.liferay.portal.events.GlobalStartupAction.run(GlobalStartupAction
.java:173)
at com.liferay.portal.events.EventsProcessor._processEvent(EventsProcess
or.java:166­)
at com.liferay.portal.events.EventsProcessor._process(EventsProcessor.ja
va:118)
at com.liferay.portal.events.EventsProcessor.process(EventsProcessor.jav
a:54)
at com.liferay.portal.servlet.MainServlet.init(MainServlet.java:478)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.
java:1172)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:99
2)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContex
t.java:4058­)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4
371)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase
.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:77
1)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)

at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.ja
va:627)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.j
ava:553)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488
)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java
:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(Lifecycl
eSupport.ja­va:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)

at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)

at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443
)
at org.apache.catalina.core.StandardService.start(StandardService.java:5
16)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710
)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.jav­a:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.sql.SQLException: ORA-00906: parenthèse de gauche absente

at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java
:112)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:743)
at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:207)
at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:946)

at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme
nt.java:116­8)
at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatem
ent.java:16­14)
at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java
:1579)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.checkSchema(Datab
aseFileSyst­em.java:1169)
at org.apache.jackrabbit.core.fs.db.DatabaseFileSystem.init(DatabaseFile
System.java­:181)
... 41 more



Can anyone tell me what's wrong?

Thanks.
在 09-4-6 上午5:06 发帖。
did you ever figure this error out? We are experiencing the same error which repeats until the server crashes...any help would be appreciated.

Thanks!
在 09-6-20 下午5:21 发帖以回复 Carlos del Castillo
Hi Carlos,

Did you ever figure out what was going on here? We are receiving the EXACT same error. Any help would be greatly appreciated.
在 09-6-22 上午7:10 发帖以回复 Carlos del Castillo
I believe the error is caused by the "schema" element missing from the repository.xml. However, I cannot figure out how schema should be populated. Many examples show:
<param name="schema" value="oracle"/> which causes me to get:
Caused by: java.lang.NullPointerException
at oracle.jdbc.driver.T4C8Oall.getNumRows(T4C8Oall.java:876)

When I use:
<param name="schema" value="MY_USER_SCHEMA"/>
I get:
Caused by: javax.jcr.RepositoryException: Configuration error: unknown schema 'MY_USER_SCHEMA'
even though it definitely exists in the db, with the right password and privileges.
在 09-9-30 上午11:58 发帖以回复 Brian Scott Schupbach
The docs seems to say: use schema="oracle" for the oracle impls. This does work with
<FileSystem class="org.apache.jackrabbit.core.fs.db.OracleFileSystem">
and
<PersistenceManager­ class="org.apache.jackrabbit.core.persistence.db.OraclePersistenceManager">

but i'm still getting some problem where it says invalid schema
在 09-9-30 下午1:26 发帖以回复 Ben Hidalgo
it actually creates a workspace.xml file based on the default in your repository.xml on startup. however, changes made to repository.xml are not echoed into that file making it stale. so you have to fix everything in both places.

-qed
在 09-9-30 下午2:06 发帖以回复 Ben Hidalgo
As far as I can tell, using a DataSource does not work.

I tried this with PostgreSQL and it only worked using a direct JDBC URL and driver. The reference to "javax.naming.InitialContext" generated a lot of strange errors.
在 09-11-17 上午12:49 发帖。
In case this is helpfull for anyone, I managed to correct this exact same error like this:

1: Make shure your FileSystem and PersistanceManager tags are like here: http://www.liferay.com/community/forums/-/message_boards/message/4658324?_19_red­irect=/community/forums/-/message_boards/search%3F_19_redirect%3D%252Fcommunity%­252Fforums%26_19_breadcrumbsCategoryId%3D0%26_19_breadcrumbsMessageId%3D0%26_19_­searchCategoryId%3D0%26_19_threadId%3D0%26_19_keywords%3Ddocument%2Blibrary%2Bco­nfiguration%2Bstore%2Bto%2Bdatabase

2: Delete everything under /directory/to/jackrabbit/root/home

And it should work
在 10-5-3 上午9:26 发帖以回复 dan dan
What are the steps for hooking up jackrabbit to MSSQL on Liferay 6.0sp2
在 11-8-19 上午7:02 发帖以回复 Joao Sequeira
HI, I am trying to integrate jackrabbit in Liferay 6.2 ga2 where i am getting error Duplicate configuration element FileSystem in Workspace. Can anyone help me in this?
Below is the code for repository.xml

<?xml version="1.0"?>

<Repository>
<!--<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/repository" />
</FileSystem> -->

<!--
Database File System (Cluster Configuration)

This is sample configuration for mysql persistence that can be used for
clustering Jackrabbit. For other databases, change the connection,
credentials, and schema settings.
-->

<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="com.mysql.jdbc.Driver" />
<param name="url" value="jdbc:mysql://localhost:3306/liferay" />
<param name="user" value="root" />
<param name="password" value="secret" />
<param name="schema" value="mysql" />
<param name="schemaObjectPrefix" value="J_R_FS_" />
</FileSystem>

<Security appName="Jackrabbit">
<AccessManager class="org.apache.jackrabbit.core.security.SimpleAccessManager" />
<LoginModule class="org.apache.jackrabbit.core.security.SimpleLoginModule">
<param name="anonymousId" value="anonymous" />
</LoginModule>
</Security>
<Workspaces rootPath="${rep.home}/workspaces" defaultWorkspace="liferay" />
<Workspace name="${wsp.name}">
<!--<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${wsp.home}" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"­ /> -->

<!--
Database File System and Persistence (Cluster Configuration)

This is sample configuration for mysql persistence that can be used for
clustering Jackrabbit. For other databases, change the connection,
credentials, and schema settings.
-->

<PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
<pa­ram name="driver" value="com.mysql.jdbc.Driver" />
<param name="url" value="jdbc:mysql://localhost:3306/liferay" />
<param name="user" value="root" />
<param name="password" value="secret" />
<param name="schema" value="mysql" />
<param name="schemaObjectPrefix" value="J_PM_${wsp.name}_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>
<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="com.mysql.jdbc.Driver" />
<param name="url" value="jdbc:mysql://localhost:3306/liferay" />
<param name="user" value="root" />
<param name="password" value="secret" />
<param name="schema" value="mysql" />
<param name="schemaObjectPrefix" value="J_FS_${wsp.name}_" />
</FileSystem>
</Workspace>
<Versioning rootPath="${rep.home}/version">
<!--<FileSystem class="org.apache.jackrabbit.core.fs.local.LocalFileSystem">
<param name="path" value="${rep.home}/version" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.persistence.bundle.BundleFsPersistenceManager"­ /> -->

<!--
Database File System and Persistence (Cluster Configuration)

This is sample configuration for mysql persistence that can be used for
clustering Jackrabbit. For other databases, change the connection,
credentials, and schema settings.
-->

<FileSystem class="org.apache.jackrabbit.core.fs.db.DbFileSystem">
<param name="driver" value="com.mysql.jdbc.Driver" />
<param name="url" value="jdbc:mysql://localhost:3306/liferay" />
<param name="user" value="root" />
<param name="password" value="secret" />
<param name="schema" value="mysql" />
<param name="schemaObjectPrefix" value="J_V_FS_" />
</FileSystem>
<PersistenceManager class="org.apache.jackrabbit.core.state.db.SimpleDbPersistenceManager">
<pa­ram name="driver" value="com.mysql.jdbc.Driver" />
<param name="url" value="jdbc:mysql://localhost:3306/liferay" />
<param name="user" value="root" />
<param name="password" value="secret" />
<param name="schema" value="mysql" />
<param name="schemaObjectPrefix" value="J_V_PM_" />
<param name="externalBLOBs" value="false" />
</PersistenceManager>
</Versioning>

<!--
Cluster Configuration

This is sample configuration for mysql persistence that can be used for
clustering Jackrabbit. For other databases, change the connection,
credentials, and schema settings.
-->

<!--<Cluster id="worker1" syncDelay="5">
<Journal class="org.apache.jackrabbit.core.journal.DatabaseJournal">
<param name="revision" value="${rep.home}/revision" />
<param name="driver" value="com.mysql.jdbc.Driver" />
<param name="url" value="jdbc:mysql://localhost:3306/liferay" />
<param name="user" value="root" />
<param name="password" value="secret" />
<param name="schema" value="mysql" />
<param name="schemaObjectPrefix" value="J_C_" />
</Journal>
</Cluster> -->
</Repository>
在 14-4-14 上午10:53 发帖。