我正在使用带有liferay-portal-6.0.5的Orbeon 3.9.0 PE RC1。当使用Localhost Mysql持久层时,它的工作原理。
但是当尝试使用远程(本地网络)Mysql数据库时,表单构建器无法发布任何表单而且没有显示数据。
Properties-local.xml configaretion
`
错误日志示例。
2011-04-07 12:37:18,118 INFO ProcessorService - / fr / service / mysql / search / orbeon / builder - 收到的请求 2011-04-07 12:37:20,853 ERROR SQLProcessor - PreparedStatement:
select
(
select count(*) from orbeon_form_data
where
(app, form, document_id, last_modified) in (
select app, form, document_id, max(last_modified) last_modified
from orbeon_form_data
where
app = ?
and form = ?
group by app, form, document_id)
and deleted = 'N'
) total,
(
select count(*) from (
select
data.created, data.last_modified, data.document_id
, extractValue(data.xml, '/*/xhtml:head/xforms:model[@id = ''fr-form-model'']/xforms:instance[@id = ''fr-form-metadata'']/*/application-name') detail_1
, extractValue(data.xml, '/*/xhtml:head/xforms:model[@id = ''fr-form-model'']/xforms:instance[@id = ''fr-form-metadata'']/*/form-name') detail_2
, extractValue(data.xml, '/*/xhtml:head/xforms:model[@id = ''fr-form-model'']/xforms:instance[@id = ''fr-form-metadata'']/*/title[@xml:lang = ''en'']') detail_3
, extractValue(data.xml, '/*/xhtml:head/xforms:model[@id = ''fr-form-model'']/xforms:instance[@id = ''fr-form-metadata'']/*/description[@xml:lang = ''en'']') detail_4
from orbeon_form_data data,
(
select max(last_modified) last_modified, app, form, document_id
from orbeon_form_data
where
app = ?
and form = ?
group by app, form, document_id
) latest
where
data.last_modified = latest.last_modified
and data.app = latest.app
and data.form = latest.form
and data.document_id = latest.document_id
and data.deleted = 'N'
order by created desc
)a
) search_total
2011-04-07 12:37:20,868 INFO DatabaseContext - 回滚数据源的JDBC连接:jdbc / mysql。 2011-04-07 12:37:20,868 ERROR ProcessorService - oxf上的异常:/apps/fr/persistence/mysql/search.xpl(执行XSLT转换) com.mysql.jdbc.exceptions.MySQLSyntaxErrorException:FUNCTION orbeon.extractValue不存在 在com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936) 在com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985) 在com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631) 在com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723) 在com.mysql.jdbc.Connection.execSQL(Connection.java:3256) 在com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313) 在com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:874) at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169) at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169) 在org.orbeon.oxf.processor.sql.interpreters.QueryInterpreter.end(QueryInterpreter.java:600) 在org.orbeon.oxf.processor.sql.SQLProcessor $ InterpreterContentHandler.endElement(SQLProcessor.java:540) at org.orbeon.oxf.processor.sql.SQLProcessor $ ForwardingContentHandler.endElement(SQLProcessor.java:635) 在org.orbeon.oxf.processor.sql.SQLProcessor $ InterpreterContentHandler.endElement(SQLProcessor.java:542) at org.orbeon.oxf.processor.sql.SQLProcessor $ ForwardingContentHandler.endElement(SQLProcessor.java:635) 在org.orbeon.oxf.processor.sql.SQLProcessor $ InterpreterContentHandler.endElement(SQLProcessor.java:542) at org.orbeon.oxf.processor.sql.SQLProcessor $ ForwardingContentHandler.endElement(SQLProcessor.java:635) 在org.orbeon.oxf.processor.sql.SQLProcessor $ InterpreterContentHandler.endElement(SQLProcessor.java:542) 在org.orbeon.oxf.processor.sql.SQLProcessor $ RootInterpreter.endElement(SQLProcessor.java:290) 在org.orbeon.oxf.xml.SAXStore.replay(SAXStore.java:288) 在org.orbeon.oxf.xml.SAXStore.replay(SAXStore.java:202) 在org.orbeon.oxf.processor.sql.SQLProcessor.execute(SQLProcessor.java:251) 在org.orbeon.oxf.processor.sql.SQLProcessor $ 1.readImpl(SQLProcessor.java:89) at org.orbeon.oxf.processor.impl.ProcessorOutputImpl $ TopLevelOutputFilter.read(ProcessorOutputImpl.java:263) 在org.orbeon.oxf.processor.impl.ProcessorOutputImpl.read(ProcessorOutputImpl.java:406) 在`
答案 0 :(得分:1)
由于你得到的错误是FUNCTION orbeon.extractValue does not exist
,我怀疑这是因为MySQL的另一个(远程)版本是旧版本,不支持extractValue()
。 MySQL持久层依赖于MySQL 5.1中引入的XML函数,因此您需要使用MySQL 5.1(2008年11月发布)或更新版本。