我在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&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