尝试访问数据库时,Orbeon会抛出StackOverFlowError

时间:2011-10-04 12:02:30

标签: orbeon

我在Tomcat 6.0上运行Orbeon 3.9 PE版本,安装在带有MySQL 5.1的Debian 6.0.2上。

我可以让Orbeon运行并访问/使用部署在资源/应用程序中的应用程序,但访问表单构建器new-form-creation(../orbeon/fr/orbeon/builder/new)会导致以下错误:打印到日志中(并且页面没有加载,阻止创建表单):


2011-10-04 14:11:09,274 INFO  OrbeonSessionListener  - Session Listener - Session created.
2011-10-04 14:11:10,631 WARN  XFormsServer  - xxforms:instance() - instance not found {instance id: "fr-uuid"}
2011-10-04 14:11:10,631 WARN  XFormsServer  - xxforms:instance() - instance not found {instance id: "fr-save-locally-file-name"}
2011-10-04 14:11:11,838 WARN  XFormsServer  - xxforms:instance() - instance not found {instance id: "fr-uuid"}
2011-10-04 14:11:11,838 WARN  XFormsServer  - xxforms:instance() - instance not found {instance id: "fr-save-locally-file-name"}
2011-10-04 14:12:00,649 ERROR ProcessorService  - Exception with no location data
java.lang.StackOverflowError
        at java.lang.Exception.<init>(Exception.java:41)
        at java.lang.RuntimeException.<init>(RuntimeException.java:43)
        at org.orbeon.oxf.common.OXFException.<init>(OXFException.java:203)
        at org.orbeon.oxf.common.ValidationException.<init>(ValidationException.java:105)
        at org.orbeon.oxf.xforms.xbl.XBLContainer.performDefaultAction(XBLContainer.java:809)
        at org.orbeon.oxf.xforms.XFormsContainingDocument.performDefaultAction(XFormsContainingDocument.java:1004)
        at org.orbeon.oxf.xforms.xbl.XBLContainer.dispatchEvent(XBLContainer.java:1035)
        at org.orbeon.oxf.xforms.XFormsContainingDocument.dispatchEvent(XFormsContainingDocument.java:880)
        at org.orbeon.oxf.xforms.XFormsContextStack.pushBinding(XFormsContextStack.java:562)
        at org.orbeon.oxf.xforms.XFormsContextStack.pushBinding(XFormsContextStack.java:247)
        at org.orbeon.oxf.xforms.ControlTree$CreateControlsListener.pushBinding(ControlTree.java:824)
.....

我的上下文文件'orbeon.xml':


<Context path="/orbeon" docBase="/usr/local/orbeon-3.9" debug="0" reloadable="true">
    <Resource name="jdbc/orbeonmysql" auth="Container" type="javax.sql.DataSource" initialSize="3" maxActive="10" maxIdle="20" maxWait="30000" driverClassName="com.mysql.jdbc.Driver" poolPreparedStatements="true" username="orbeon" password="xxx" url="jdbc:mysql://localhost:3306/orbeon?useUnicode=true&amp;characterEncoding=UTF8"/>
</Context>

properties-local.xml中的数据库配置:


<property as="xs:anyURI" name="oxf.fr.persistence.service.mysql.datasource" value="orbeonmysql"/>
<property as="xs:anyURI" name="oxf.fr.persistence.app.uri.*.*.*" value="/fr/service/mysql"/>

我在Windows 7上使用相同的设置在tomcat6和mysql 5.1上安装了相同的Orbeon PE软件包,它运行正常。

在Debian服务器上,我在同一个tomcat上安装了Confluence,连接到同一个数据库服务器,这也很好。

我尝试过两个版本的MySQL连接器: MySQL的连接器的Java-5.0.8 MySQL的连接器的Java-5.1.17

我迷失在这里,因为错误日志告诉我任何我无法使用的内容,也无法找到任何类似的问题来获取线索。


// UPDATE


尝试了-Xss16m和-Xss32m。该页面不再提供StackOverFlowError,但永远不会停止加载。 我还从Tomcat中删除了Confluence实例,以确保它不是问题的一部分。

我插入了一个数据库转储,并注意到构建器/摘要页面将显示数据库中的表单。 我可以访问已发布表单的摘要页面。此外,还可以使用已发布的表单填写新数据或编辑现有表格。 唯一不起作用的是构建器编辑/新页面。

我也尝试将'ulimit -s 2048'添加到tomcat启动,没有效果。

tomcat配置中的tomcat JAVA_OPTS如下:


ulimit -s 2048
export JAVA_OPTS="-Djava.awt.headless=true -Xmx1024M -Xms256m -XX:PermSize=256m -XX:MaxPermSize=1024m -XX:+HeapDumpOnOutOfMemoryError -Xss32m"
export CATALINA_OPTS="$CATALINA_OPTS $JAVA_OPTS"

打印的最后一个日志条目是:


2011-10-06 08:41:09,051 WARN  XFormsServer  - xxforms:instance() - instance not found {instance id: "fr-uuid"}
2011-10-06 08:41:09,051 WARN  XFormsServer  - xxforms:instance() - instance not found {instance id: "fr-save-locally-file-name"}
2011-10-06 08:41:10,289 WARN  XFormsServer  - xxforms:instance() - instance not found {instance id: "fr-uuid"}
2011-10-06 08:41:10,289 WARN  XFormsServer  - xxforms:instance() - instance not found {instance id: "fr-save-locally-file-name"}
// END OF LOG, no new rows after 10mins of waiting

0 个答案:

没有答案