升级到Orbeon Forms 4.4后,为什么我与Oracle的连接失败

时间:2013-12-12 01:00:36

标签: oracle orbeon

我有一个Orbeon Forms 4.3的工作实例,我设置它连接到Oracle。升级到Orbeon Forms 4.4后,根据具体情况,与Oracle的连接会因不同的异常而失败,例如:

  • org.orbeon.oxf.xforms.submission.XFormsSubmissionException
  • org.orbeon.oxf.common.ValidationException
  • org.orbeon.oxf.webapp.HttpStatusCodeException

导致这种情况的原因是什么?

1 个答案:

答案 0 :(得分:0)

检查错误来源

这些例外很可能只是真正原因的症状。请务必按照development configuration更改log4j.xmlproperties-local.xml,重现问题,然后再次检查orbeon.log。检查您现在看到的日志中是否看到java.lang.NoClassDefFoundError: oracle/xdb/XMLType例外。

解决方案

如果您看到NoClassDefFoundError,则需要将xdb.jarxmlparserv2.jar添加到当前拥有Oracle驱动程序的目录中。这两个文件是Oracle驱动程序的一部分,并且来自另一个“主jar”,即ojdbc6_g.jar。在Tomcat上,通常将这些文件放在Tomcat的lib目录中。重启Tomcat,你的问题应该解决了。

为什么会这样?

这种情况正在发生,因为Orbeon Forms 4.4开始将XML“作为XML”发送给Oracle,而不是“作为CLOB”。因此,驱动程序使用xdb.jarxmlparserv2.jar中的类。回想起来,这可能不是最好的方法;之所以这样做是因为它看起来像是“正确的东西”,但目前尚不清楚它有任何性能或其他好处,并使安装和升级更加困难,需要额外的罐子。

更新

此问题为fixed in Orbeon Forms 4.5