Подключение к БД Orbeon Forms Postgres

Я попытался сохранить формы Orbeon в Postgres DB. Я создал слой постоянства баз данных, но формы по-прежнему хранятся в стандартной базе данных eXist. Я создал контекст (источник базы данных) в "Server.xml" из tomcat7, и я создал файл "properties-local.xml" в Orbeon4.8 (orbeon/src/resources/config/properties-local.xml). Моя ссылка такова.

Кто-нибудь, помогите мне, как сохранить формы orbeon в Postgres DB?

2 ответа

Решение

Как только ресурс базы данных настроен, вы можете указать Orbeon использовать его, добавив подобное в ваш файл properties-local.xml:

<property as="xs:string"  name="oxf.fr.persistence.provider.*.*.*" value="postgresql"/>

Вы можете увидеть конфигурацию по умолчанию для имен ресурсов, которые Orbeon принимает из коробки в файле properties-form-runner.xml.

Exist будет по-прежнему использоваться для примеров форм. Но вы можете отключить его с помощью:

<property as="xs:boolean" name="oxf.fr.persistence.exist.active" value="false"/>

Если вам нужно определить ресурс с именем, отличным от имен по умолчанию (например, postgresql), вам нужно будет предоставить больше информации, как показано ниже (не забудьте заменить все вхождения pg_other_name на имя вашего ресурса).

<property as="xs:string"  name="oxf.fr.persistence.provider.*.*.*" value="pg_other_name"/>
<property as="xs:anyURI"  name="oxf.fr.persistence.pg_other_name.uri" value="/fr/service/postgresql"/>
<property as="xs:string"  name="oxf.fr.persistence.pg_other_name.datasource" value="pg_other_name"/>
<property as="xs:boolean" name="oxf.fr.persistence.pg_other_name.create-flat-view" value="true"/>
<property as="xs:boolean" name="oxf.fr.persistence.pg_other_name.autosave" value="true"/>
<property as="xs:boolean" name="oxf.fr.persistence.pg_other_name.permissions" value="true"/>
<property as="xs:boolean" name="oxf.fr.persistence.pg_other_name.versioning" value="true"/>

Я не уверен, что вы подразумеваете под "созданным контекстом в Server.xml".

В кота server.xml у вас должен быть определен источник данных. Например:

<GlobalNamingResources>

    <Resource
        name="jdbc/postgresql"
        auth="Container"
        type="javax.sql.DataSource"
        initialSize="3"
        maxActive="10"
        maxIdle="20"
        maxWait="30000"
        driverClassName="org.postgresql.Driver"
        validationQuery="select 1"
        testOnBorrow="true"
        poolPreparedStatements="true"
        username="orbeon"
        password="orbeon"
        url="jdbc:postgresql://server:5432/database?useUnicode=true&amp;characterEncoding=UTF8&amp;socketTimeout=30&amp;tcpKeepAlive=true"/>

</GlobalNamingResources>

Тогда в кот context.xml у вас должен быть ResourceLink для источника данных:

<ResourceLink global="jdbc/postgresql" name="jdbc/postgresql" type="javax.sql.DataSource"/>

properties-local.xml должно быть либо в webapps/orbeon/WEB-INF/resources/config или во внешнем каталоге, который вы определили в Tomcat context.xml, например:

<Parameter name="oxf.resources.priority.0" override="false" value="org.orbeon.oxf.resources.FilesystemResourceManagerFactory"/>
<Parameter name="oxf.resources.priority.0.oxf.resources.filesystem.sandbox-directory" override="false" value="C:/orbeon_resources"/>

В этом случае properties-local.xml должно быть здесь: C:\orbeon_resources\properties-local.xml, См. Хранение конфигураций вне файла войны Orbeon Forms.

Также убедитесь, что вы выполнили настройку Orbeon Forms. Это общая конфигурация базы данных, не относящаяся к postgresql или любой другой реализации базы данных. Примеры, которые они приводят oracle но вы можете просто заменить oracle с postgresql,

Другие вопросы по тегам