MySQL Persistence Layer Internal Error

8 views
Skip to first unread message

christinab

unread,
Aug 28, 2019, 9:09:58 AM8/28/19
to orb...@googlegroups.com
Hi

We have MySQL set up as where the Orbeon form data is saved. The problem is
that we have another program that needs to access the form info through the
persistence layer, but isn't reaching it.

More specifically, on the computer where we have our database still as just
exist we can run this url and get the submission ids:
http://localhost:8080/orbeon/fr/service/persistence/crud/APP/FORM/data/

When we run it on the Orbeon instance with MySQL, we get an internal server
error. Could it be our configurations? Does any one have suggestions on how
to fix this?

Thanks!!
Christina

--
Sent from: http://discuss.orbeon.com/

christinab

unread,
Aug 28, 2019, 9:41:06 AM8/28/19
to orb...@googlegroups.com
This is the error I get

+----------------------------------------------------------------------------------------------------------------------+
|An Error has Occurred
|
|----------------------------------------------------------------------------------------------------------------------|
|/fr/service/mysql/crud/wald/1111/data/ (of class java.lang.String)
|
|----------------------------------------------------------------------------------------------------------------------|
|Application Call Stack
|
|----------------------------------------------------------------------------------------------------------------------|
|oxf:/apps/fr/page-flow.xml
|reading page model data output| 42|
|······················································································································|
|element=<service
path=&quot;/fr/service/(oracle|mysql|postgresql|db2|sqlserver)/crud/([^/]+/[^/]+/(form/[^/]+|(data|draft)/|
|model =persistence/relational/crud.xpl
|
|----------------------------------------------------------------------------------------------------------------------|
|oxf:/apps/fr/persistence/relational/crud.xpl
|executing processor | 17|
|······················································································································|
|element=&lt;p:processor name=&quot;fr:relational-crud&quot;/>
|
|name ={http://orbeon.org/oxf/xml/form-runner}relational-crud
|
|----------------------------------------------------------------------------------------------------------------------|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: scala.MatchError
|
|----------------------------------------------------------------------------------------------------------------------|
|r.persistence.relational.rest.RequestResponse$class|request
|RequestResponse.scala | 68|
|org.orbeon.oxf.fr.persistence.relational.rest.CRUD |request
|CRUD.scala | 21|
|org.orbeon.oxf.fr.persistence.relational.rest.CRUD |start
|CRUD.scala | 32|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$4|run
|PipelineProcessor.java | 617|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.oxf.common.ValidationException
|
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.oxf.common.OrbeonLocationException$ |wrapException
|OrbeonLocationException.scala | 60|
|org.orbeon.oxf.common.OrbeonLocationException |wrapException
|OrbeonLocationException.scala | |
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$4|run
|PipelineProcessor.java | 619|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren
|PipelineProcessor.java | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|start
|PipelineProcessor.java | 614|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$4|run
|PipelineProcessor.java | 617|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren
|PipelineProcessor.java | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|start
|PipelineProcessor.java | 614|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$1|getInput
|PipelineProcessor.java | 141|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$1|readImpl
|PipelineProcessor.java | 84|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|processor.pipeline.choose.ConcreteChooseProcessor$1|readImpl
|ConcreteChooseProcessor.java | 126|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 266|
|org.orbeon.oxf.processor.IdentityProcessor$1 |readImpl
|IdentityProcessor.java | 33|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|orbeon.oxf.processor.pipeline.PipelineProcessor$1$1|run
|PipelineProcessor.java | 93|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren
|PipelineProcessor.java | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|access$000
|PipelineProcessor.java | 60|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$1|readImpl
|PipelineProcessor.java | 91|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 266|
|org.orbeon.oxf.processor.IdentityProcessor$1 |readImpl
|IdentityProcessor.java | 33|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 266|
|org.orbeon.oxf.processor.IdentityProcessor$1 |readImpl
|IdentityProcessor.java | 33|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|orbeon.oxf.processor.pipeline.PipelineProcessor$1$1|run
|PipelineProcessor.java | 93|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren
|PipelineProcessor.java | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|access$000
|PipelineProcessor.java | 60|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$1|readImpl
|PipelineProcessor.java | 91|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|processor.pipeline.choose.ConcreteChooseProcessor$1|readImpl
|ConcreteChooseProcessor.java | 126|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|ssor.pipeline.PipelineProcessor$InternalTopOutput$1|run
|PipelineProcessor.java | 535|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeParents
|PipelineProcessor.java | 696|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|access$400
|PipelineProcessor.java | 60|
|cessor.pipeline.PipelineProcessor$InternalTopOutput|readImpl
|PipelineProcessor.java | 531|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 266|
|org.orbeon.oxf.processor.NullSerializer |start
|NullSerializer.java | 28|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.oxf.common.OXFException
|
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.oxf.processor.NullSerializer |start
|NullSerializer.java | 30|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$4|run
|PipelineProcessor.java | 617|
|----------------------------------------------------------------------------------------------------------------------|
|Exception: org.orbeon.oxf.common.ValidationException
|
|----------------------------------------------------------------------------------------------------------------------|
|org.orbeon.oxf.common.OrbeonLocationException$ |wrapException
|OrbeonLocationException.scala | 60|
|org.orbeon.oxf.common.OrbeonLocationException |wrapException
|OrbeonLocationException.scala | |
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$4|run
|PipelineProcessor.java | 619|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren
|PipelineProcessor.java | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|start
|PipelineProcessor.java | 614|
|f.processor.pipeline.choose.ConcreteChooseProcessor|start
|ConcreteChooseProcessor.java | 231|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$4|run
|PipelineProcessor.java | 617|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren
|PipelineProcessor.java | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|start
|PipelineProcessor.java | 614|
|ller.PageFlowControllerProcessor$PageOrServiceRoute|process
|PageFlowControllerProcessor.sc| 588|
|g.orbeon.oxf.controller.PageFlowControllerProcessor|start
|PageFlowControllerProcessor.sc| 180|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$4|run
|PipelineProcessor.java | 617|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren
|PipelineProcessor.java | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|start
|PipelineProcessor.java | 614|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$1|getInput
|PipelineProcessor.java | 141|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$1|readImpl
|PipelineProcessor.java | 84|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|processor.pipeline.choose.ConcreteChooseProcessor$1|readImpl
|ConcreteChooseProcessor.java | 126|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 266|
|org.orbeon.oxf.processor.IdentityProcessor$1 |readImpl
|IdentityProcessor.java | 33|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|orbeon.oxf.processor.pipeline.PipelineProcessor$1$1|run
|PipelineProcessor.java | 93|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|executeChildren
|PipelineProcessor.java | 679|
|org.orbeon.oxf.processor.pipeline.PipelineProcessor|access$000
|PipelineProcessor.java | 60|
|g.orbeon.oxf.processor.pipeline.PipelineProcessor$1|readImpl
|PipelineProcessor.java | 91|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 266|
|org.orbeon.oxf.processor.IdentityProcessor$1 |readImpl
|IdentityProcessor.java | 33|
|essor.impl.ProcessorOutputImpl$TopLevelOutputFilter|read
|ProcessorOutputImpl.java | 256|
|org.orbeon.oxf.processor.impl.ProcessorOutputImpl |read
|ProcessorOutputImpl.java | 392|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 262|
|org.orbeon.oxf.processor.ProcessorImpl |readInputAsSAX
|ProcessorImpl.java | 266|
|---8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<---|
|org.apache.catalina.core.ApplicationFilterChain |doFilter
|ApplicationFilterChain.java | 166|
|org.apache.tomcat.websocket.server.WsFilter |doFilter
|WsFilter.java | 53|
|org.apache.catalina.core.ApplicationFilterChain |internalDoFilter
|ApplicationFilterChain.java | 193|
|org.apache.catalina.core.ApplicationFilterChain |doFilter
|ApplicationFilterChain.java | 166|
|org.orbeon.oxf.servlet.FormRunnerAuthFilter |doFilter
|FormRunnerAuthFilter.scala | 49|
|org.apache.catalina.core.ApplicationFilterChain |internalDoFilter
|ApplicationFilterChain.java | 193|
|org.apache.catalina.core.ApplicationFilterChain |doFilter
|ApplicationFilterChain.java | 166|
|doFilter$1$$anonfun$apply$1$$anonfun$apply$mcV$sp$1|apply$mcV$sp
|LimiterFilter.scala | 85|
|doFilter$1$$anonfun$apply$1$$anonfun$apply$mcV$sp$1|apply
|LimiterFilter.scala | 85|
|doFilter$1$$anonfun$apply$1$$anonfun$apply$mcV$sp$1|apply
|LimiterFilter.scala | 85|
|org.orbeon.oxf.logging.LifecycleLogger$ |withEvent
|LifecycleLogger.scala | 125|
|.LimiterFilter$$anonfun$doFilter$1$$anonfun$apply$1|apply$mcV$sp
|LimiterFilter.scala | 84|
|.LimiterFilter$$anonfun$doFilter$1$$anonfun$apply$1|apply
|LimiterFilter.scala | 78|
|.LimiterFilter$$anonfun$doFilter$1$$anonfun$apply$1|apply
|LimiterFilter.scala | 78|
|org.orbeon.oxf.logging.LifecycleLogger$ |withEvent
|LifecycleLogger.scala | 125|
|rbeon.oxf.servlet.LimiterFilter$$anonfun$doFilter$1|apply
|LimiterFilter.scala | 78|
|rbeon.oxf.servlet.LimiterFilter$$anonfun$doFilter$1|apply
|LimiterFilter.scala | 72|
|scala.Option |foreach
|Option.scala | 257|
|org.orbeon.oxf.servlet.LimiterFilter |doFilter
|LimiterFilter.scala | 72|
|org.apache.catalina.core.ApplicationFilterChain |internalDoFilter
|ApplicationFilterChain.java | 193|
|org.apache.catalina.core.ApplicationFilterChain |doFilter
|ApplicationFilterChain.java | 166|
|RequestHeaderFilter |doFilter
|RequestHeaderFilter.java | 141|
|org.apache.catalina.core.ApplicationFilterChain |internalDoFilter
|ApplicationFilterChain.java | 193|
|org.apache.catalina.core.ApplicationFilterChain |doFilter
|ApplicationFilterChain.java | 166|
|org.apache.catalina.core.StandardWrapperValve |invoke
|StandardWrapperValve.java | 202|
|org.apache.catalina.core.StandardContextValve |invoke
|StandardContextValve.java | 96|
|org.apache.catalina.authenticator.AuthenticatorBase|invoke
|AuthenticatorBase.java | 607|
|org.apache.catalina.core.StandardHostValve |invoke
|StandardHostValve.java | 139|
|org.apache.catalina.valves.ErrorReportValve |invoke
|ErrorReportValve.java | 92|
|org.apache.catalina.core.StandardEngineValve |invoke
|StandardEngineValve.java | 74|
|org.apache.catalina.connector.CoyoteAdapter |service
|CoyoteAdapter.java | 343|
|org.apache.coyote.http11.Http11Processor |service
|Http11Processor.java | 408|
|org.apache.coyote.AbstractProcessorLight |process
|AbstractProcessorLight.java | 66|
|rg.apache.coyote.AbstractProtocol$ConnectionHandler|process
|AbstractProtocol.java | 853|
|.apache.tomcat.util.net.NioEndpoint$SocketProcessor|doRun
|NioEndpoint.java |1587|
|org.apache.tomcat.util.net.SocketProcessorBase |run
|SocketProcessorBase.java | 49|
|java.util.concurrent.ThreadPoolExecutor |runWorker
| | |
|java.util.concurrent.ThreadPoolExecutor$Worker |run
| | |
|che.tomcat.util.threads.TaskThread$WrappingRunnable|run
|TaskThread.java | 61|
|java.lang.Thread |run
| | |
+----------------------------------------------------------------------------------------------------------------------+

Alessandro Vernet

unread,
Aug 29, 2019, 1:13:34 AM8/29/19
to orb...@googlegroups.com
Hi Christina,

The relevant error seems to be the `scala.MatchError`, in
`RequestResponse.scala` line 68. What version of Orbeon Forms are you using?

Also, so we have more information in the log, could you please try to set
your logging as described in the Development configuration section of the
XForms Logging page, stop your server, remove the `orbeon.log`, restart the
server, reproduce the issue and attach the `orbeon.log` you get?

https://doc.orbeon.com/configuration/advanced/xforms-logging.html

‑Alex

-----
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet

Christina Bannon

unread,
Aug 29, 2019, 1:14:23 PM8/29/19
to Orbeon Forms
Hi Alex! 

I am using version 2018.2.3.201905172253 PE, I attached a short orbeon.log where I just immediately reproduced the error. although I turned the xforms debugger on, nothing appears to have printed out from that on this short log. 

Any troubleshooting tips greatly appreciated!
Christina 
orbeon.log

Alessandro Vernet

unread,
Aug 29, 2019, 3:21:41 PM8/29/19
to orb...@googlegroups.com
Hi Christina,

I see: Orbeon Forms gets a request to:

/fr/service/persistence/crud/wald/1111/data/

This URL appears to be incorrect. Is the app indeed "wald" and form "1111"?
If so, for a GET request, you would typically also want to have the document
id and end with `/data.xml`. Say, if the document id is
`fc4c32532e8d35a2d0b84e2cf076bb070e9c1e8e`, then you would have a GET to:


/fr/service/persistence/crud/wald/1111/data/fc4c32532e8d35a2d0b84e2cf076bb070e9c1e8e/data.xml

Does this make sense?

Christina Bannon

unread,
Aug 29, 2019, 3:44:54 PM8/29/19
to orb...@googlegroups.com
Hi Alex!! 

Thank you for your super quick response. Using the format you sent works great for getting info from one submission of a form. Is there a URL I could enter to get all of the submission ids from a form's submissions? I have a screenshot of the kind of response we are hoping to be able to get. 

Thanks again!
Christina 
submission-ids.png

Alessandro Vernet

unread,
Aug 29, 2019, 6:58:17 PM8/29/19
to orb...@googlegroups.com
Hi Christina,

Yes, the search API will return something along those lines. You'll let me
know if that API does what you need.

https://doc.orbeon.com/form-runner/api/persistence/search

christinab

unread,
Sep 9, 2019, 1:13:27 PM9/9/19
to orb...@googlegroups.com
Thanks so much Alex!

It works now!

Alessandro Vernet

unread,
Sep 9, 2019, 2:11:11 PM9/9/19
to orb...@googlegroups.com
Perfect Christina, I'm glad the search API worked for you, and thank you for
the update.

‑Alex

-----
--
Follow Orbeon on Twitter: @orbeon
Follow me on Twitter: @avernet
Reply all
Reply to author
Forward
0 new messages