首先感谢Orbeon开发人员为这样一个漂亮的表单构建器。我创建了自己的表单,现在单击“保存”按钮我不想将表单数据(字段输入)保存到数据库中。我需要将表单数据发送到JSP / Servlet页面。为此,我在表单详细信息页面中创建了一个发送按钮,通过修改properties-form-runner.xml
<property as="xs:string" name="oxf.fr.detail.buttons.*.*">
clear save-final review send
</property>
然后我按如下方式修改了properties-local.xml
文件,
<properties xmlnss="http://www.w3.org/2001/XMLSchema"
xmlns:oxf="http://www.orbeon.com/oxf/processors"
xmlnsh="http://www.w3.org/1999/xhtml"
xmlnsf="http://www.w3.org/2002/xforms"
xmlnsxf="http://orbeon.org/oxf/xml/xforms"
xmlns:exf="http://www.exforms.org/exf/1-0"
xmlnsbl="http://www.w3.org/ns/xbl"
xmlnsxbl="http://orbeon.org/oxf/xml/xbl"
xmlns:fr="http://orbeon.org/oxf/xml/form-runner">
<property as="xs:NMTOKENS" name="oxf.xforms.logging.debug">
document model submission control event action analysis server html process
</property>
<property as="xs:NMTOKENS" name="oxf.xforms.logging.error" value="submission-error-body"/>
<property as="xs:string" name="oxf.fr.detail.process.send.*.*" replace="all" method="GET" id="fr-workflow-send-submission"
value='require-valid
then send("http://localhost:8080/orbeon-4.8.0.201502041339-CE/xforms-jsp/guess-the-number/index.jsp")
then navigate("/success")
recover navigate("/failure")'/>
</properties>
然后在创建构建并填写相应的表单后,单击&#34;提交&#34;按钮,我收到以下错误。 Orbeon Forms - Page Not Found
日志详细信息如下,
2015-02-04 19:39:26,051 DEBUG XFormsServer - start submission {id: "fr-send-submission-none"}
2015-02-04 19:39:26,051 DEBUG XFormsServer - optimized dispatching {name: "xforms-submit-serialize", target: "fr-send-submission-none", native handlers called: "0"}
2015-02-04 19:39:26,051 DEBUG XFormsServer - start connecting {type: "regular"}
2015-02-04 19:39:26,051 INFO lifecycle - event: {"request": "93", "session": "2C12D5E5336D383277FDFA2BA49B9453", "source": "service", "message": "start: handle", "path": "/fr/orbeon/bookshelf/", "method": "POST"}
2015-02-04 19:39:26,051 INFO ProcessorService - /fr/orbeon/bookshelf/ - Received request
2015-02-04 19:39:26,066 INFO PageFlowControllerProcessor - not found {controller: "oxf:/apps/fr/page-flow.xml", method: "POST", path: "/fr/orbeon/bookshelf/"}
2015-02-04 19:39:26,082 INFO PageFlowControllerProcessor - not found {controller: "oxf:/page-flow.xml", method: "POST", path: "/fr/orbeon/bookshelf/"}
2015-02-04 19:39:26,114 INFO ProcessorService - /fr/orbeon/bookshelf/ - Timing: 63
2015-02-04 19:39:26,115 INFO lifecycle - event: {"request": "93", "session": "2C12D5E5336D383277FDFA2BA49B9453", "source": "service", "message": "end: handle", "time": "64 ms"}
2015-02-04 19:39:26,117 DEBUG XFormsServer - end connecting {time (ms): "66"}
2015-02-04 19:39:26,117 DEBUG XFormsServer - start handling result
2015-02-04 19:39:26,117 DEBUG XFormsServer - evaluated model variables {count: "4"}
2015-02-04 19:39:26,120 DEBUG XFormsServer - xf:insert - inserted nodes {count: "3"}
2015-02-04 19:39:26,120 DEBUG XFormsServer - xf:insert - inserted nodes {count: "1"}
2015-02-04 19:39:26,120 DEBUG XFormsServer - xf:delete - removed nodes {count: "1"}
2015-02-04 19:39:26,120 DEBUG XFormsServer - end handling result {time (ms): "3"}
2015-02-04 19:39:26,121 DEBUG XFormsServer - end submission {time (ms): "70"}
2015-02-04 19:39:26,121 DEBUG XFormsServer - evaluated model variables {count: "4"}
2015-02-04 19:39:26,149 ERROR XFormsServer - xforms-submit-error - setting throwable {throwable: "
2015-02-04 19:39:26,149 ERROR XFormsServer - +----------------------------------------------------------------------------------------------------------------------+
2015-02-04 19:39:26,149 ERROR XFormsServer - |An Error has Occurred |
2015-02-04 19:39:26,149 ERROR XFormsServer - |----------------------------------------------------------------------------------------------------------------------|
2015-02-04 19:39:26,149 ERROR XFormsServer - |xf:submission for submission id: fr-send-submission-none, error code received when submitting instance: 404 |
2015-02-04 19:39:26,149 ERROR XFormsServer - |----------------------------------------------------------------------------------------------------------------------|
2015-02-04 19:39:26,149 ERROR XFormsServer - |Application Call Stack |
2015-02-04 19:39:26,149 ERROR XFormsServer - |----------------------------------------------------------------------------------------------------------------------|
2015-02-04 19:39:26,149 ERROR XFormsServer - |----------------------------------------------------------------------------------------------------------------------|
2015-02-04 19:39:26,149 ERROR XFormsServer - |Exception: org.orbeon.oxf.xforms.submission.XFormsSubmissionException |
2015-02-04 19:39:26,149 ERROR XFormsServer - |----------------------------------------------------------------------------------------------------------------------|
2015-02-04 19:39:26,149 ERROR XFormsServer - |.orbeon.oxf.xforms.submission.XFormsModelSubmission|getReplacer |XFormsModelSubmission.java | 729|
2015-02-04 19:39:26,149 ERROR XFormsServer - |rg.orbeon.oxf.xforms.submission.RegularSubmission$1|call |RegularSubmission.java | 107|
2015-02-04 19:39:26,149 ERROR XFormsServer - |rg.orbeon.oxf.xforms.submission.RegularSubmission$1|call |RegularSubmission.java | 77|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.xforms.submission.BaseSubmission |submitCallable |BaseSubmission.scala | 89|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.xforms.submission.RegularSubmission |connect |RegularSubmission.java | 130|
2015-02-04 19:39:26,149 ERROR XFormsServer - |.orbeon.oxf.xforms.submission.XFormsModelSubmission|doSubmit |XFormsModelSubmission.java | 460|
2015-02-04 19:39:26,149 ERROR XFormsServer - |.orbeon.oxf.xforms.submission.XFormsModelSubmission|performDefaultAction |XFormsModelSubmission.java | 292|
2015-02-04 19:39:26,149 ERROR XFormsServer - |ch$$anonfun$dispatchEvent$1$$anonfun$apply$mcV$sp$1|apply$mcV$sp |Dispatch.scala | 125|
2015-02-04 19:39:26,149 ERROR XFormsServer - |ch$$anonfun$dispatchEvent$1$$anonfun$apply$mcV$sp$1|apply |Dispatch.scala | 74|
2015-02-04 19:39:26,149 ERROR XFormsServer - |ch$$anonfun$dispatchEvent$1$$anonfun$apply$mcV$sp$1|apply |Dispatch.scala | 74|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.util.Logging$class |withDebug |Logging.scala | 50|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.xforms.event.Dispatch$ |withDebug |Dispatch.scala | 23|
2015-02-04 19:39:26,149 ERROR XFormsServer - |.oxf.xforms.event.Dispatch$$anonfun$dispatchEvent$1|apply$mcV$sp |Dispatch.scala | 74|
2015-02-04 19:39:26,149 ERROR XFormsServer - |.oxf.xforms.event.Dispatch$$anonfun$dispatchEvent$1|apply |Dispatch.scala | 73|
2015-02-04 19:39:26,149 ERROR XFormsServer - |.oxf.xforms.event.Dispatch$$anonfun$dispatchEvent$1|apply |Dispatch.scala | 73|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.xforms.event.Dispatch$ |withEvent$1 |Dispatch.scala | 38|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.xforms.event.Dispatch$ |dispatchEvent |Dispatch.scala | 72|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.xforms.action.XFormsAPI$ |send |XFormsAPI.scala | 275|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.xforms.action.XFormsAPI$ |sendThrowOnError |XFormsAPI.scala | 292|
2015-02-04 19:39:26,149 ERROR XFormsServer - |oxf.fr.process.FormRunnerActions$$anonfun$trySend$1|apply |FormRunnerActions.scala | 277|
2015-02-04 19:39:26,149 ERROR XFormsServer - |oxf.fr.process.FormRunnerActions$$anonfun$trySend$1|apply |FormRunnerActions.scala | 206|
2015-02-04 19:39:26,149 ERROR XFormsServer - |scala.util.Try$ |apply |Try.scala | 161|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.fr.process.FormRunnerActions$class |trySend |FormRunnerActions.scala | 206|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.fr.process.SimpleProcess$ |trySend |SimpleProcess.scala | 35|
2015-02-04 19:39:26,149 ERROR XFormsServer - |rmRunnerActions$$anonfun$AllowedFormRunnerActions$8|apply |FormRunnerActions.scala | 40|
2015-02-04 19:39:26,149 ERROR XFormsServer - |rmRunnerActions$$anonfun$AllowedFormRunnerActions$8|apply |FormRunnerActions.scala | 40|
2015-02-04 19:39:26,149 ERROR XFormsServer - |ssInterpreter$ProcessRuntime$$anonfun$runAction$1$3|apply |ProcessInterpreter.scala | 139|
2015-02-04 19:39:26,149 ERROR XFormsServer - |ssInterpreter$ProcessRuntime$$anonfun$runAction$1$3|apply |ProcessInterpreter.scala | 134|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.util.Logging$class |withDebug |Logging.scala | 50|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.fr.process.SimpleProcess$ |withDebug |SimpleProcess.scala | 35|
2015-02-04 19:39:26,149 ERROR XFormsServer - |n.oxf.fr.process.ProcessInterpreter$ProcessRuntime$|runAction$1 |ProcessInterpreter.scala | 134|
2015-02-04 19:39:26,149 ERROR XFormsServer - |n.oxf.fr.process.ProcessInterpreter$ProcessRuntime$|org$orbeon$oxf$fr$process$Proc|ProcessInterpreter.scala | 195|
2015-02-04 19:39:26,149 ERROR XFormsServer - |rpreter$ProcessRuntime$$anonfun$11$$anonfun$apply$8|apply |ProcessInterpreter.scala | 161|
2015-02-04 19:39:26,149 ERROR XFormsServer - |rpreter$ProcessRuntime$$anonfun$11$$anonfun$apply$8|apply |ProcessInterpreter.scala | 161|
2015-02-04 19:39:26,149 ERROR XFormsServer - |scala.util.Success |flatMap |Try.scala | 200|
2015-02-04 19:39:26,149 ERROR XFormsServer - |ocess.ProcessInterpreter$ProcessRuntime$$anonfun$11|apply |ProcessInterpreter.scala | 161|
2015-02-04 19:39:26,149 ERROR XFormsServer - |ocess.ProcessInterpreter$ProcessRuntime$$anonfun$11|apply |ProcessInterpreter.scala | 158|
2015-02-04 19:39:26,149 ERROR XFormsServer - |n.oxf.fr.process.ProcessInterpreter$ProcessRuntime$|withStackFrame |ProcessInterpreter.scala | 104|
2015-02-04 19:39:26,149 ERROR XFormsServer - |n.oxf.fr.process.ProcessInterpreter$ProcessRuntime$|runGroupRest$1 |ProcessInterpreter.scala | 157|
2015-02-04 19:39:26,149 ERROR XFormsServer - |n.oxf.fr.process.ProcessInterpreter$ProcessRuntime$|runGroup$1 |ProcessInterpreter.scala | 149|
2015-02-04 19:39:26,149 ERROR XFormsServer - |---8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<---|
2015-02-04 19:39:26,149 ERROR XFormsServer - |nServlet$$anonfun$service$1$$anonfun$apply$mcV$sp$1|apply$mcV$sp |OrbeonServlet.scala | 79|
2015-02-04 19:39:26,149 ERROR XFormsServer - |nServlet$$anonfun$service$1$$anonfun$apply$mcV$sp$1|apply |OrbeonServlet.scala | 72|
2015-02-04 19:39:26,149 ERROR XFormsServer - |nServlet$$anonfun$service$1$$anonfun$apply$mcV$sp$1|apply |OrbeonServlet.scala | 72|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.util.ScalaUtils$ |withRootException |ScalaUtils.scala | 83|
2015-02-04 19:39:26,149 ERROR XFormsServer - |orbeon.oxf.servlet.OrbeonServlet$$anonfun$service$1|apply$mcV$sp |OrbeonServlet.scala | 72|
2015-02-04 19:39:26,149 ERROR XFormsServer - |orbeon.oxf.servlet.OrbeonServlet$$anonfun$service$1|apply |OrbeonServlet.scala | 72|
2015-02-04 19:39:26,149 ERROR XFormsServer - |orbeon.oxf.servlet.OrbeonServlet$$anonfun$service$1|apply |OrbeonServlet.scala | 72|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.util.DynamicVariable |withValue |DynamicVariable.scala | 42|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.servlet.OrbeonServlet |service |OrbeonServlet.scala | 71|
2015-02-04 19:39:26,149 ERROR XFormsServer - |javax.servlet.http.HttpServlet |service |HttpServlet.java | 722|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.core.ApplicationFilterChain |internalDoFilter |ApplicationFilterChain.java | 305|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.core.ApplicationFilterChain |doFilter |ApplicationFilterChain.java | 210|
2015-02-04 19:39:26,149 ERROR XFormsServer - |doFilter$1$$anonfun$apply$1$$anonfun$apply$mcV$sp$1|apply$mcV$sp |LimiterFilter.scala | 85|
2015-02-04 19:39:26,149 ERROR XFormsServer - |doFilter$1$$anonfun$apply$1$$anonfun$apply$mcV$sp$1|apply |LimiterFilter.scala | 85|
2015-02-04 19:39:26,149 ERROR XFormsServer - |doFilter$1$$anonfun$apply$1$$anonfun$apply$mcV$sp$1|apply |LimiterFilter.scala | 85|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.logging.LifecycleLogger$ |withEvent |LifecycleLogger.scala | 124|
2015-02-04 19:39:26,149 ERROR XFormsServer - |.LimiterFilter$$anonfun$doFilter$1$$anonfun$apply$1|apply$mcV$sp |LimiterFilter.scala | 84|
2015-02-04 19:39:26,149 ERROR XFormsServer - |.LimiterFilter$$anonfun$doFilter$1$$anonfun$apply$1|apply |LimiterFilter.scala | 78|
2015-02-04 19:39:26,149 ERROR XFormsServer - |.LimiterFilter$$anonfun$doFilter$1$$anonfun$apply$1|apply |LimiterFilter.scala | 78|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.logging.LifecycleLogger$ |withEvent |LifecycleLogger.scala | 124|
2015-02-04 19:39:26,149 ERROR XFormsServer - |rbeon.oxf.servlet.LimiterFilter$$anonfun$doFilter$1|apply |LimiterFilter.scala | 78|
2015-02-04 19:39:26,149 ERROR XFormsServer - |rbeon.oxf.servlet.LimiterFilter$$anonfun$doFilter$1|apply |LimiterFilter.scala | 72|
2015-02-04 19:39:26,149 ERROR XFormsServer - |scala.Option |foreach |Option.scala | 236|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.orbeon.oxf.servlet.LimiterFilter |doFilter |LimiterFilter.scala | 72|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.core.ApplicationFilterChain |internalDoFilter |ApplicationFilterChain.java | 243|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.core.ApplicationFilterChain |doFilter |ApplicationFilterChain.java | 210|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.core.StandardWrapperValve |invoke |StandardWrapperValve.java | 225|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.core.StandardContextValve |invoke |StandardContextValve.java | 169|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.authenticator.AuthenticatorBase|invoke |AuthenticatorBase.java | 472|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.core.StandardHostValve |invoke |StandardHostValve.java | 168|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.valves.ErrorReportValve |invoke |ErrorReportValve.java | 98|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.valves.AccessLogValve |invoke |AccessLogValve.java | 927|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.core.StandardEngineValve |invoke |StandardEngineValve.java | 118|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.catalina.connector.CoyoteAdapter |service |CoyoteAdapter.java | 407|
2015-02-04 19:39:26,149 ERROR XFormsServer - |org.apache.coyote.http11.AbstractHttp11Processor |process |AbstractHttp11Processor.java | 999|
2015-02-04 19:39:26,149 ERROR XFormsServer - |e.coyote.AbstractProtocol$AbstractConnectionHandler|process |AbstractProtocol.java | 565|
2015-02-04 19:39:26,149 ERROR XFormsServer - |.apache.tomcat.util.net.JIoEndpoint$SocketProcessor|run |JIoEndpoint.java | 309|
2015-02-04 19:39:26,149 ERROR XFormsServer - |java.util.concurrent.ThreadPoolExecutor$Worker |runTask |ThreadPoolExecutor.java | 885|
2015-02-04 19:39:26,149 ERROR XFormsServer - |java.util.concurrent.ThreadPoolExecutor$Worker |run |ThreadPoolExecutor.java | 907|
2015-02-04 19:39:26,149 ERROR XFormsServer - |java.lang.Thread |run |Thread.java | 619|
2015-02-04 19:39:26,149 ERROR XFormsServer - +----------------------------------------------------------------------------------------------------------------------+"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - start dispatching {name: "xforms-submit-error", target: "fr-send-submission-none"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - start handler {name: "xforms-submit-error", phase: "target", observer: "fr-send-submission-none"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - interpreter - start executing {action name: "xf:setvalue"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - xf:setvalue - setting instance value {source: "setvalue", old value: "false", new value: "", instance: "fr-persistence-instance"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - start dispatching {name: "xxforms-value-changed", target: "fr-persistence-instance"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - start handler {name: "xxforms-value-changed", phase: "target", observer: "fr-persistence-instance"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - interpreter - not executing {action name: "xf:action", condition type: "if", reason: "condition evaluated to 'false'", condition: "name(event('node')) = 'data-status' and event('old-value') != event('new-value')"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - end handler {time (ms): "0"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - end dispatching {time (ms): "0", regular handlers called: "1", native handlers called: "0"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - interpreter - end executing {time (ms): "0", action name: "xf:setvalue"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - end handler {time (ms): "0"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - end dispatching {time (ms): "0", regular handlers called: "1", native handlers called: "1"}
2015-02-04 19:39:26,149 DEBUG XFormsServer - end dispatching {time (ms): "119", regular handlers called: "1", native handlers called: "0"}
2015-02-04 19:39:26,165 DEBUG XFormsServer - end process: running action {time (ms): "152", result: "failure"}
2015-02-04 19:39:26,165 DEBUG XFormsServer - process: combining with then {action: "ActionNode(navigate,Map(None -> /success))"}
2015-02-04 19:39:26,165 DEBUG XFormsServer - process: combining with recover {action: "ActionNode(navigate,Map(None -> /failure))"}
此外,我还有以下疑问,
1)如何发送数据(采用哪种格式)? 2)我们如何获得servelt / JSP中的值? 3)是否可以通过不同的服务器发送表单数据?
答案 0 :(得分:1)
我已通过编辑properties-local.xml
中的配置解决了此问题,如下所示,
<property
as="xs:string"
name="oxf.fr.detail.process.send.*.*"
value='require-valid
then send(uri = "http://localhost:9090/ServletAction/demoClass", method="POST", content="metadata")
then navigate("http://localhost:8080/orbeon/xforms-jsp/guess-the-number/index.jsp")
recover navigate("http://localhost:8080/orbeon/xforms-jsp/flickr-search/index.jsp")'/>
在servelt through request InputStream中,我能够在Post方法中获取表单实例。