我有一个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
导致这种情况的原因是什么?
答案 0 :(得分:0)
这些例外很可能只是真正原因的症状。请务必按照development configuration更改log4j.xml
和properties-local.xml
,重现问题,然后再次检查orbeon.log
。检查您现在看到的日志中是否看到java.lang.NoClassDefFoundError: oracle/xdb/XMLType
例外。
如果您看到NoClassDefFoundError
,则需要将xdb.jar
和xmlparserv2.jar
添加到当前拥有Oracle驱动程序的目录中。这两个文件是Oracle驱动程序的一部分,并且来自另一个“主jar”,即ojdbc6_g.jar
。在Tomcat上,通常将这些文件放在Tomcat的lib
目录中。重启Tomcat,你的问题应该解决了。
这种情况正在发生,因为Orbeon Forms 4.4开始将XML“作为XML”发送给Oracle,而不是“作为CLOB”。因此,驱动程序使用xdb.jar
和xmlparserv2.jar
中的类。回想起来,这可能不是最好的方法;之所以这样做是因为它看起来像是“正确的东西”,但目前尚不清楚它有任何性能或其他好处,并使安装和升级更加困难,需要额外的罐子。