Postgresql Orbeon形成Postgres数据库连接

Postgresql Orbeon形成Postgres数据库连接,postgresql,orbeon,Postgresql,Orbeon,我已尝试在Postgres DB中保存Orbeon表单。我创建了数据库持久层,但表单仍然存储在默认的eXist数据库中。我在tomcat7的“Server.xml”中创建了上下文(数据库源),在Orbeon4.8(orbeon/src/resources/config/properties local.xml)中创建了“properties local.xml”文件。我的推荐信是 有人帮我如何在Postgres DB中保存orbeon表单吗?我不知道“在Server.xml中创建上下文”是什么意

我已尝试在Postgres DB中保存Orbeon表单。我创建了数据库持久层,但表单仍然存储在默认的eXist数据库中。我在tomcat7的“Server.xml”中创建了上下文(数据库源),在Orbeon4.8(orbeon/src/resources/config/properties local.xml)中创建了“properties local.xml”文件。我的推荐信是


有人帮我如何在Postgres DB中保存orbeon表单吗?

我不知道“在Server.xml中创建上下文”是什么意思

在tomcat的
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>
<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
应该位于
webapps/orbeon/WEB-INF/resources/config
中,或者位于您在tomcat的
context.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>
<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\u resources\properties local.xml
。看


此外,请确保您已执行了以下操作。这是一般数据库配置,不特定于postgresql或任何其他数据库实现。他们给出的示例是针对
oracle
,但是您可以用
postgresql
替换
oracle
,我不确定“在Server.xml中创建上下文”是什么意思

在tomcat的
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>
<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
应该位于
webapps/orbeon/WEB-INF/resources/config
中,或者位于您在tomcat的
context.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>
<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\u resources\properties local.xml
。看


此外,请确保您已执行了以下操作。这是一般数据库配置,不特定于postgresql或任何其他数据库实现。他们给出的示例适用于
oracle
,但您可以将
oracle
替换为
postgresql

一旦配置了数据库资源,您可以通过在properties-local.xml中添加类似的内容来告诉Orbeon使用它:

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

您可以在中看到资源名称的默认配置,或者在中看到现成的资源名称

Exist仍将用于示例表单。但您可以通过以下方式禁用它:

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

如果需要使用默认名称以外的名称(例如postgresql)定义资源,则需要提供如下所示的更多信息(请记住用资源名称替换所有出现的pg_other_名称)


一旦配置了数据库资源,您可以通过在properties-local.xml中添加类似的内容来告诉Orbeon使用它:

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

您可以在中看到资源名称的默认配置,或者在中看到现成的资源名称

Exist仍将用于示例表单。但您可以通过以下方式禁用它:

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

如果需要使用默认名称以外的名称(例如postgresql)定义资源,则需要提供如下所示的更多信息(请记住用资源名称替换所有出现的pg_other_名称)



很抱歉,它不工作。我有一个问题,orbeon forms 4.8是否支持postgresql 9.2?我不知道是否支持特定版本。我只将Orbeon与Oracle 11g和12c一起使用过。如果您说“它不工作”,您的意思是它仍在保存到eXist数据库,那么postgresql版本就不会有问题。这将是您的配置中的一个问题。我建议您编辑您的问题,以包括配置的具体细节。现在你的信息很少,所以很难诊断。很抱歉,它不起作用。我有一个问题,orbeon forms 4.8是否支持postgresql 9.2?我不知道是否支持特定版本。我只将Orbeon与Oracle 11g和12c一起使用过。如果您说“它不工作”,您的意思是它仍在保存到eXist数据库,那么postgresql版本就不会有问题。这将是您的配置中的一个问题。我建议您编辑您的问题,以包括配置的具体细节。现在你只有很少的信息,所以很难诊断。