Postgresql Orbeon形成Postgres数据库连接
我已尝试在Postgres DB中保存Orbeon表单。我创建了数据库持久层,但表单仍然存储在默认的eXist数据库中。我在tomcat7的“Server.xml”中创建了上下文(数据库源),在Orbeon4.8(orbeon/src/resources/config/properties local.xml)中创建了“properties local.xml”文件。我的推荐信是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表单吗?我不知道“在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&characterEncoding=UTF8&socketTimeout=30&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&characterEncoding=UTF8&socketTimeout=30&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&characterEncoding=UTF8&socketTimeout=30&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&characterEncoding=UTF8&socketTimeout=30&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版本就不会有问题。这将是您的配置中的一个问题。我建议您编辑您的问题,以包括配置的具体细节。现在你只有很少的信息,所以很难诊断。