Thank you very much for you answer Jere.
Indeed, my deployed repository settings file contains the following entry:
<PersistenceManager
class="org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager">
<param name="url" value="jdbc:derby:${wsp.home}/db;create=true"/>
<param name="schemaObjectPrefix" value="Unnamed -
com.fylab.eliot:eliot-docs-socle:jar:2.2.0-SNAPSHOT_"/>
</PersistenceManager>
The repository setting file I'm using to create the repository contains:
<PersistenceManager
class="org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager">
<param name="url"
value="jdbc:derby:${wsp.home}/db;create=true"/>
<param name="schemaObjectPrefix" value="${wsp.name}_"/>
</PersistenceManager>
So it happens that the 'wsp.name' is mapped to 'Unnamed -
com.fylab.eliot:eliot-docs-socle:jar:2.2.0-SNAPSHOT_'
The 2nd part of that name is the JAR file that contains my JackRabbit
module.
As a temporary solution I can replace this pattern by a constant like:
<param name="schemaObjectPrefix" value="defaultWorkspace"/>
But what should I do to get the name of the workspace without the JAR
file qualification?
John
Jere McDevitt a écrit :
I saw something similar when first converting over to using Postgres. Table
names which get created based on prefix settings are URL encoded, so if you
have content with characters like . (002e) - (002d) and : (003a) you get
table names like that. It appears somewhere in your configuration file you
are using a what looks like might be a classpath entry in a config setting
that defines a table name. Can you post the repository settings file you
are using? Looking at the name it looks like you have:
UNNAMED _- _ COM.FYLAB.ELIOT:ELIOT-DOCS-SOCLE:JAR:2.2.0-SNAPSHOT_BUNDLE
in a setting somewhere.
On Wed, Jan 6, 2010 at 4:44 AM, John Tranier <[email protected]> wrote:
Hi all,
I am stuck with an issue that sounds related to character encoding, and I
would like to check if someone knows about it or has an idea of how I can
overcome it.
I have developed for my web application a JackRabbit module.
Everything works fine with my tests inside the module, but when I deploy
this module inside my application it fails to instantiate the persistence
manager.
Here is the relevant stack trace:
javax.jcr.RepositoryException: Cannot instantiate persistence manager
org.apache.jackrabbit.core.persistence.bundle.DerbyPersistenceManager:
Schema generation error: Issuing statement: create table
UNNAMED_x0020__x002d__x0020_COM_x002e_FYLAB_x002e_ELIOT_x003a_ELIOT_x002d_DOCS_x002d_SOCLE_x003a_JAR_x003a_2_x002e_2_x002e_0_x002d_SNAPSHOT_BUNDLE
(NODE_ID_HI bigint not null, NODE_ID_LO bigint not null, BUNDLE_DATA
blob(2G) not null, PRIMARY KEY (NODE_ID_HI, NODE_ID_LO)): Schema generation
error: Issuing statement: create table
UNNAMED_x0020__x002d__x0020_COM_x002e_FYLAB_x002e_ELIOT_x003a_ELIOT_x002d_DOCS_x002d_SOCLE_x003a_JAR_x003a_2_x002e_2_x002e_0_x002d_SNAPSHOT_BUNDLE
(NODE_ID_HI bigint not null, NODE_ID_LO bigint not null, BUNDLE_DATA
blob(2G) not null, PRIMARY KEY (NODE_ID_HI, NODE_ID_LO))
Caused by: java.sql.SQLException: The name
'UNNAMED_X0020__X002D__X0020_COM_X002E_FYLAB_X002E_ELIOT_X003A_ELIOT_X002D_DOCS_X002D_SOCLE_X003A_JAR_X003A_2_X002E_2_X002E_0_X002D_SNAPSHOT_BUNDLE'
is too long. The maximum length is '128'.
Thanks for support,
John