Re: path must begin with a "/" (details)

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: path must begin with a "/" (details)

Jean Luc-2
I've simplified the test case to a form with one field.

The original XForms model

    <xf:model>
        <xf:instance id="form-data" xmlns="">
            <acm-data>
                <importable-data>
                    <asset>
                        <description/>
                    </asset>
                </importable-data>
            </acm-data>
        </xf:instance>
        <xf:submission method="post" id="form-submit" action="/acm/xforms/xform.action" omit-xml-declaration="true" indent="true"/>
    </xf:model>

The HTML produced by Orbeon (the header and the hidden divs for error display were removed, they are not relevant here)

<form id="xforms-form" class="xforms-form" action="/xforms-server-submit" method="POST" onsubmit="return false">
    <input type="hidden" name="$static-state" value="pers:96A6D323-E677-97D5-05D5-0B57F4971E46"><input type="hidden" name="$dynamic-state" value="pers:F8DE4F4A-499F-EF6F-04F2-ABE64EC77F63"><input type="hidden" name="$server-events" value=""><input type="hidden" name="$client-state" value=""><input type="hidden" name="$repeat-tree" value=""><input type="hidden" name="$repeat-indexes" value=""><span class="xforms-loading-loading">Loading...</span><span class="xforms-loading-none"></span>


    <label class=" xforms-label" for="xforms-element-4">description</label>
    <span id="xforms-element-4" class="xforms-control xforms-input">
        <span class="xforms-date-display"></span>
        <input id="input-xforms-element-4" type="text" name="xforms-element-4" value="" class="xforms-input-input">
        <img class="xforms-showcalendar" id="showcalendar-xforms-element-4" src="/acm/ops/ops/images/xforms/calendar.gif" p0:url-norewrite="true"></span>
    <label class=" xforms-alert-inactive xforms-alert" for="xforms-element-4"></label>
    <button id="xforms-element-6" class="xforms-control xforms-submit" type="button">Submit</button>
</form>

The 3 events sent by the clients after typing "hello" in the description field and clicking Submit.

<?xml version=" 1.0" encoding="utf-8"?>
<xxf:event-response xmlns:xxf=" http://orbeon.org/oxf/xml/xforms">
 <xxf:dynamic-state>pers:F8DE4F4A-499F-EF6F-04F2-ABE64EC77F63</xxf:dynamic-state>
 <xxf:action>
  <xxf:control-values/>
 </xxf:action>
</xxf:event-response>


<?xml version="1.0" encoding="utf-8"?>
<xxf:event-response xmlns:xxf=" http://orbeon.org/oxf/xml/xforms">
 <xxf:dynamic-state>pers:CC3568DF-0441-DAB0-4FE8-33383C2CCE23</xxf:dynamic-state>
 <xxf:action>
  <xxf:control-values>
   <xxf:control id="xforms-element-4">hello</xxf:control>
  </xxf:control-values>
 </xxf:action>
</xxf:event-response>


<?xml version="1.0" encoding="utf-8"?>
<xxf:event-response xmlns:xxf=" http://orbeon.org/oxf/xml/xforms">
 <xxf:dynamic-state>pers:CC3568DF-0441-DAB0-4FE8-33383C2CCE23</xxf:dynamic-state>
 <xxf:action>
  <xxf:control-values/>
  <xxf:server-events>X2y6DZ/6qm2DVz4pc7gQetVNz29jPV4yPY3xtaKOW+oFk4P2obpNW7dHDZeLo8ANGMgfWQxD+g+DZ0 k6KSQkwS3xlRSQBM2ljACunHSgxX3FdcpxHvCCwkhTkGdQ4DtBkruDc3tGg8HAHR1yVsgrzOr8k7 I6qjDF8zk1rkWdwhe8izHJUEGPMTfEmF7Twde4NU5yijP8JJpGsfu1vBzggxuTRrOQ92sbElm08V P4EGZKhI63ks4JqAsA==</xxf:server-events>
  <xxf:submission action="/ops/xforms-server-submit" method="POST" replace="all"/>
 </xxf:action>
</xxf:event-response>


I find it curious to see the HTML has ... calendar references. There is nothing suggesting such a form. The log shows the correct instance submitted:


2007-12-17 14:10:13,557 DEBUG XFormsServer  - XForms - dispatching event: xxforms-submit - form-submit - at line 114 of XFormsEventFactory.java
2007-12-17 14:10:13,557 DEBUG XPathCache  - makeObject(/acm/xforms/xform.action)
2007-12-17 14:10:13,572 DEBUG XFormsServer  - XForms - setting request body: <?xml version="1.0" encoding="UTF-8"?>
<acm-data xmlns:xf="http://www.w3.org/2002/xforms"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                <importable-data>
                    <asset>
                        <description>hello</description>
                    </asset>
                </importable-data>
</acm-data>

Then the exception:

2007-12-17 14:10:13,572 ERROR ProcessorService  - Exception at line 27 of oxf:/config/xforms- widgets.xsl (processing submission)
java.lang.IllegalArgumentException: path must begin with a "/"
        at com.evermind.server.http.HttpApplication.getRequestDispatcher(HttpApplication.java:1668)
        at org.orbeon.oxf.servlet.ServletExternalContext.getRequestDispatcher(ServletExternalContext.java:857)
        at org.orbeon.oxf.xforms.XFormsSubmissionUtils.doOptimized(XFormsSubmissionUtils.java:92)
        at org.orbeon.oxf.xforms.XFormsModelSubmission.performDefaultAction (XFormsModelSubmission.java:686)
        at org.orbeon.oxf.xforms.XFormsContainingDocument.dispatchEvent(XFormsContainingDocument.java :980)
        at org.orbeon.oxf.xforms.XFormsContainingDocument.executeExternalEvent(XFormsContainingDocument.java:809)
        at org.orbeon.oxf.xforms.processor.XFormsServer.executeExternalEventPrepareIfNecessary(XFormsServer.java:283)
        at org.orbeon.oxf.xforms.processor.XFormsServer.doIt(XFormsServer.java:223)
        at org.orbeon.oxf.xforms.processor.XFormsServer.start(XFormsServer.java:84)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:650)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren (ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:647)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:650)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:647)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput (PipelineProcessor.java:138)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java :87)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.readImpl(ConcreteChooseProcessor.java:121)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read (ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:353)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read (ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor.java:94)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100 (PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java :92)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX (ProcessorImpl.java:353)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX (ProcessorImpl.java:353)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000 (PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor.java :94)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java:92)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read (ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java :1213)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.readImpl(ConcreteChooseProcessor.java :121)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX (ProcessorImpl.java:353)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000 (PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor.java :94)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java:92)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read (ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java :1213)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.readImpl(ConcreteChooseProcessor.java :121)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$1400 (PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$6.run(PipelineProcessor.java :570)
        at org.orbeon.oxf.processor.ProcessorImpl.executeParents(ProcessorImpl.java:572)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$1500(PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$InternalTopOutput.readImpl(PipelineProcessor.java:566)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read (ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:353)
        at org.orbeon.oxf.processor.NullSerializer.start(NullSerializer.java:31)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:650)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren (ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:647)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(ConcreteChooseProcessor.java:229)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:650)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:647)
        at org.orbeon.oxf.processor.PageFlowControllerProcessor.start (PageFlowControllerProcessor.java:430)
        at org.orbeon.oxf.pipeline.InitUtils.runProcessor(InitUtils.java:95)
        at org.orbeon.oxf.webapp.ProcessorService.service(ProcessorService.java:96)
        at org.orbeon.oxf.servlet.OPSServletDelegate.service(OPSServletDelegate.java:148)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at org.orbeon.oxf.servlet.OPSServlet.service (OPSServlet.java:75)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
        at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
        at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
        at com.evermind.server.http.HttpRequestHandler.processRequest (HttpRequestHandler.java:453)
        at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java :221)
        at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
        at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
        at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
        at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
        at java.lang.Thread.run(Thread.java:595)

Any assistance is appreciated!

On Dec 17, 2007 11:08 AM, Jean Luc <[hidden email]> wrote:
Changing as the subject as I did specify a value for action explicitly and one that does begin with a /, with I still get the same error.
Erik, any thoughts what the cause would be?

Thank you,
JL



Error Message
path must begin with a "/"

Call Stack
Resource URL Line Column Description XML Element
oxf:/config/xforms-widgets.xsl 27 N/A processing submission
dispatching XForms event
event → xxforms-submit
target id → form-submit  <xf:submission action="/myapp/xforms/xform.action" id="form-submit" indent="true" method="post" omit-xml-declaration="true"/>
oxf:/ops/xforms/xforms-server-submit.xpl 61 43 executing processor
name → {http://www.orbeon.com/oxf/processors}xforms-server <p:processor name="oxf:xforms-server">...</p:processor>

Exception Class java.lang.IllegalArgumentException
Message path must begin with a "/"
Servlet Stack Trace
(96 method calls)  Class Name Method Name File Name Line Number
com.evermind.server.http.HttpApplication getRequestDispatcher HttpApplication.java 1668
org.orbeon.oxf.servlet.ServletExternalContext getRequestDispatcher ServletExternalContext.java 857
org.orbeon.oxf.xforms.XFormsSubmissionUtils doOptimized XFormsSubmissionUtils.java 92
org.orbeon.oxf.xforms.XFormsModelSubmission performDefaultAction XFormsModelSubmission.java 686
org.orbeon.oxf.xforms.XFormsContainingDocument dispatchEvent XFormsContainingDocument.java 980
org.orbeon.oxf.xforms.XFormsContainingDocument executeExternalEvent XFormsContainingDocument.java 809
org.orbeon.oxf.xforms.processor.XFormsServer executeExternalEventPrepareIfNecessary XFormsServer.java 283
org.orbeon.oxf.xforms.processor.XFormsServer doIt XFormsServer.java 223
org.orbeon.oxf.xforms.processor.XFormsServer start XFormsServer.java 84
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
 


Exception Class org.orbeon.oxf.xforms.XFormsModelSubmission$XFormsSubmissionException
Message Error while processing xforms:submission
Resource URL oxf:/config/xforms-widgets.xsl
Line 27
Column N/A
Servlet Stack Trace
(93 method calls)  Class Name Method Name File Name Line Number
org.orbeon.oxf.xforms.XFormsModelSubmission performDefaultAction XFormsModelSubmission.java 872
org.orbeon.oxf.xforms.XFormsContainingDocument dispatchEvent XFormsContainingDocument.java 980
org.orbeon.oxf.xforms.XFormsContainingDocument executeExternalEvent XFormsContainingDocument.java 809
org.orbeon.oxf.xforms.processor.XFormsServer executeExternalEventPrepareIfNecessary XFormsServer.java 283
org.orbeon.oxf.xforms.processor.XFormsServer doIt XFormsServer.java 223
org.orbeon.oxf.xforms.processor.XFormsServer start XFormsServer.java 84
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
org.orbeon.oxf.processor.ProcessorImpl executeChildren ProcessorImpl.java 554
org.orbeon.oxf.processor.pipeline.PipelineProcessor start PipelineProcessor.java 647
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
 


Exception Class org.orbeon.oxf.common.OXFException
Message line 27 of oxf:/config/xforms-widgets.xsl (processing submission): Error while processing xforms:submission
path must begin with a "/" 
Resource URL oxf:/config/xforms-widgets.xsl
Line 27
Column N/A
Servlet Stack Trace
(89 method calls)  Class Name Method Name File Name Line Number
org.orbeon.oxf.xforms.processor.XFormsServer doIt XFormsServer.java 264
org.orbeon.oxf.xforms.processor.XFormsServer start XFormsServer.java 84
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
org.orbeon.oxf.processor.ProcessorImpl executeChildren ProcessorImpl.java 554
org.orbeon.oxf.processor.pipeline.PipelineProcessor start PipelineProcessor.java 647
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
org.orbeon.oxf.processor.ProcessorImpl executeChildren ProcessorImpl.java 554
org.orbeon.oxf.processor.pipeline.PipelineProcessor start PipelineProcessor.java 647
org.orbeon.oxf.processor.pipeline.PipelineProcessor$1 getInput PipelineProcessor.java 138
org.orbeon.oxf.processor.pipeline.PipelineProcessor$1 readImpl PipelineProcessor.java 87
 





On Dec 17, 2007 10:34 AM, Jean Luc <[hidden email]> wrote:
Yes, I've tried now. Same error. I've also tried "/." just to see if it makes a difference, but it doesn't either.

On Dec 14, 2007 5:10 PM, Stephane Ruchet < [hidden email]> wrote:
Did you try action="." ?

Jean Luc a écrit :
Hi [Erik],

I'm using Orbeon (3.6.0.200712061930) deployed as a separate WAR. I'm using a simple form in whose <submission> element I don't want to specify the action attribute - the submission would happen at the same URL. The attribute is optional as per the XForms spec.

However, I get the following errors. Please advise.

Thanks,
JL


With an empty value for the action attribute:

<xf:submission id="form-submit" action="" method="post" omit-xml-declaration="true" indent="true"/>


Exception Class java.lang.IllegalArgumentException
Message path must begin with a "/"
Servlet Stack Trace
(96 method calls)  Class Name Method Name File Name Line Number
com.evermind.server.http.HttpApplication getRequestDispatcher HttpApplication.java 1668
org.orbeon.oxf.servlet.ServletExternalContext getRequestDispatcher ServletExternalContext.java 857
org.orbeon.oxf.xforms.XFormsSubmissionUtils doOptimized XFormsSubmissionUtils.java 92
org.orbeon.oxf.xforms.XFormsModelSubmission performDefaultAction XFormsModelSubmission.java 686
org.orbeon.oxf.xforms.XFormsContainingDocument dispatchEvent XFormsContainingDocument.java 980
org.orbeon.oxf.xforms.XFormsContainingDocument executeExternalEvent XFormsContainingDocument.java 809
org.orbeon.oxf.xforms.processor.XFormsServer executeExternalEventPrepareIfNecessary XFormsServer.java 283
org.orbeon.oxf.xforms.processor.XFormsServer doIt XFormsServer.java 223
org.orbeon.oxf.xforms.processor.XFormsServer start XFormsServer.java 84
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
 


org.orbeon.oxf.xforms.XFormsModelSubmission$XFormsSubmissionException 
Exception Class org.orbeon.oxf.xforms.XFormsModelSubmission$XFormsSubmissionException
Message Error while processing xforms:submission
Resource URL oxf:/config/xforms- widgets.xsl
Line 27
Column N/A
Servlet Stack Trace
(93 method calls)  Class Name Method Name File Name Line Number
org.orbeon.oxf.xforms.XFormsModelSubmission performDefaultAction XFormsModelSubmission.java 872
org.orbeon.oxf.xforms.XFormsContainingDocument dispatchEvent XFormsContainingDocument.java 980
org.orbeon.oxf.xforms.XFormsContainingDocument executeExternalEvent XFormsContainingDocument.java 809
org.orbeon.oxf.xforms.processor.XFormsServer executeExternalEventPrepareIfNecessary XFormsServer.java 283
org.orbeon.oxf.xforms.processor.XFormsServer doIt XFormsServer.java 223
org.orbeon.oxf.xforms.processor.XFormsServer start XFormsServer.java 84
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
org.orbeon.oxf.processor.ProcessorImpl executeChildren ProcessorImpl.java 554
org.orbeon.oxf.processor.pipeline.PipelineProcessor start PipelineProcessor.java 647
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
 More... 
 

With a missing action atribute

<xf:submission id="form-submit" method="post" omit-xml-declaration="true" indent="true"/>

xforms:submission: action attribute or resource attribute is missing.

Resource URL Line Column Description XML Element
oxf:/config/xforms-widgets.xsl 27 N/A processing xforms:submission attributes
dispatching XForms event
event → xforms-submit
target id → form-submit
dispatching XForms event
event → DOMActivate
target id → xforms-element-12  <xf:submission id="form-submit" indent="true" method="post" omit-xml-declaration="true"/>
oxf:/ops/xforms/xforms-server.xpl 55 103 reading processor output
name → response
id → xml-response  <p:output name="response" id="xml-response" schema-href=" xforms-server-response.rng"/>
oxf:/ops/xforms/xforms-server.xpl 61 52 executing processor
name → {http://www.orbeon.com/oxf/processors}xml-serializer <p:processor name="oxf:xml-serializer">...</p:processor>



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws






--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: path must begin with a "/" (details)

Jean Luc-2
I believe there is a problem while trying to restore the dynamic state - see details for the rationale.



I typed Dilbert in the form's description field. An event is sent to the server, with the value.

<!DOCTYPE xxforms:event-request [<!ENTITY nbsp "&#160;">]>
<xxforms:event-request xmlns:xxforms="http://orbeon.org/oxf/xml/xforms">
    <xxforms:static-state>pers:1C405DB8-4712-38F1-85EB-81403F4A6A38</xxforms:static-state>
    <xxforms:dynamic-state>pers:73750837-1AEA-F330-061B-7C23CD1A8C93</xxforms:dynamic-state>
    <xxforms:action>
        <xxforms:event name="xxforms-value-change-with-focus-change" source-control-id="xforms-element-4">Dilbert</xxforms:event>
        <xxforms:event name="DOMFocusOut" source-control-id="xforms-element-4"></xxforms:event>
        <xxforms:event name="DOMFocusIn" source-control-id="xforms-element-6"></xxforms:event>
    </xxforms:action>
</xxforms:event-request>


response:

<?xml version="1.0" encoding="utf-8"?>
<xxf:event-response xmlns:xxf="http://orbeon.org/oxf/xml/xforms">
 <xxf:dynamic-state>pers:0B9CF23B-582F-DF75-29B0-AED60B99688F</xxf:dynamic-state>
 <xxf:action>
  <xxf:control-values>
   <xxf:control id="xforms-element-4">Dilbert</xxf:control>
  </xxf:control-values>
 </xxf:action>
</xxf:event-response>


The server log confirms the dynamic state has been updated:

2007-12-17 16:05:06,289 DEBUG XFormsInstance  - XForms - storing instance to dynamic state: model id='xforms-element-1', instance id= 'form
data'
<?xml version="1.0" encoding="UTF-8"?><acm-data xmlns:xsd=" http://www.w3.org/2001/XMLSchema" xmlns:xf="http://www.w3.org/2002/xforms" xmlns
xsi="http://www.w3.org/2001/XMLSchema-instance">
                <importable-data>
                    <asset>
                        <description>Dilbert</description>
                    </asset>
                </importable-data>
            </acm-data>



then I click submit.

The following is sent:

%24static-state=pers%3A1C405DB8-4712-38F1-85EB-81403F4A6A38&%24dynamic-state=pers%3A0B9CF23B-582F-DF75-29B0-AED60B99688F&%24server-events=X2y6DZ%2F6qm2DVz4pc7gQetVNz29jPV4yPY3xtaKOW%2BoFk4P2obpNW7dHDZeLo8ANGMgfWQxD%2Bg%2BDZ0+k6KSQkwS3xlRSQBM2ljACunHSgxX3FdcpxHvCCwkhTkGdQ4DtBkruDc3tGg8HAHR1yVsgrzOr8k7+I6qjDF8zk1rkWdwhe8izHJUEGPMTfEmF7Twde4NU5yijP8JJpGsfu1vBzggxuTRrOQ92sbElm08V+P4EGZKhI63ks4JqAsA%3D%3D&%24client-state=ajax-dynamic-state%26pers%253A0B9CF23B-582F-DF75-29B0-AED60B99688F%26initial-dynamic-state%26pers%253A73750837-1AEA-F330-061B-7C23CD1A8C93%26load-did-run%26true&%24repeat-tree=&%24repeat-indexes=&xforms-element-4=Dilbert


However, by the time the execution gets to XFormsUtils.decodeXML() when the byte array is decrypted,
saxStore.stringBuffer contains only the following (note there is no 'Dilbert' value anywhere - and this attribute is the basis of the event).

[0] = {java.lang.String@9667}"xxforms"
[1] = {java.lang.String@9668 }"http://orbeon.org/oxf/xml/xforms"
[2] = {java.lang.String@9669 }"http://orbeon.org/oxf/xml/xforms"
[3] = {java.lang.String@9670 }"events"
[4] = {java.lang.String@9671}"xxforms:events"
[5] = {java.lang.String@9672}"http://orbeon.org/oxf/xml/xforms"
[6] = {java.lang.String@9673}"event"
[7] = {java.lang.String@9674 }"xxforms:event"
[8] = {java.lang.String@9675}""
[9] = {java.lang.String@9676}"source-control-id"
[10] = { java.lang.String@9677}"source-control-id"
[11] = {java.lang.String@9678}"CDATA"
[12] = {java.lang.String@9679}"form-submit"
[13] = {java.lang.String@9680 }""
[14] = {java.lang.String@9681}"name"
[15] = {java.lang.String@9682}"name"
[16] = {java.lang.String@9683}"CDATA"
[17] = {java.lang.String@9684}"xxforms-submit"
[18] = {java.lang.String@9685 }"http://orbeon.org/oxf/xml/xforms"
[19] = {java.lang.String@9686 }"event"
[20] = {java.lang.String@9687}"xxforms:event"
[21] = {java.lang.String@9688}"http://orbeon.org/oxf/xml/xforms"
[22] = {java.lang.String@9689}"events"
[23] = {java.lang.String@9690 }"xxforms:events"
[24] = {java.lang.String@9691}"xxforms"



On Dec 17, 2007 2:16 PM, Jean Luc <[hidden email]> wrote:
I've simplified the test case to a form with one field.

The original XForms model

    <xf:model>
        <xf:instance id="form-data" xmlns="">
            <acm-data>
                <importable-data>
                    <asset>
                        <description/>
                    </asset>
                </importable-data>
            </acm-data>
        </xf:instance>
        <xf:submission method="post" id="form-submit" action="/acm/xforms/xform.action" omit-xml-declaration="true" indent="true"/>
    </xf:model>

The HTML produced by Orbeon (the header and the hidden divs for error display were removed, they are not relevant here)

<form id="xforms-form" class="xforms-form" action="/xforms-server-submit" method="POST" onsubmit="return false">
    <input type="hidden" name="$static-state" value="pers:96A6D323-E677-97D5-05D5-0B57F4971E46"><input type="hidden" name="$dynamic-state" value="pers:F8DE4F4A-499F-EF6F-04F2-ABE64EC77F63"><input type="hidden" name="$server-events" value=""><input type="hidden" name="$client-state" value=""><input type="hidden" name="$repeat-tree" value=""><input type="hidden" name="$repeat-indexes" value=""><span class="xforms-loading-loading">Loading...</span><span class="xforms-loading-none"></span>


    <label class=" xforms-label" for="xforms-element-4">description</label>
    <span id="xforms-element-4" class="xforms-control xforms-input">
        <span class="xforms-date-display"></span>
        <input id="input-xforms-element-4" type="text" name="xforms-element-4" value="" class="xforms-input-input">
        <img class="xforms-showcalendar" id="showcalendar-xforms-element-4" src="/acm/ops/ops/images/xforms/calendar.gif" p0:url-norewrite="true"></span>
    <label class=" xforms-alert-inactive xforms-alert" for="xforms-element-4"></label>
    <button id="xforms-element-6" class="xforms-control xforms-submit" type="button">Submit</button>
</form>

The 3 events sent by the clients after typing "hello" in the description field and clicking Submit.

<?xml version=" 1.0" encoding="utf-8"?>
<xxf:event-response xmlns:xxf=" http://orbeon.org/oxf/xml/xforms">
 <xxf:dynamic-state>pers:F8DE4F4A-499F-EF6F-04F2-ABE64EC77F63</xxf:dynamic-state>
 <xxf:action>
  <xxf:control-values/>
 </xxf:action>
</xxf:event-response>


<?xml version="1.0" encoding="utf-8"?>
<xxf:event-response xmlns:xxf=" http://orbeon.org/oxf/xml/xforms">
 <xxf:dynamic-state>pers:CC3568DF-0441-DAB0-4FE8-33383C2CCE23</xxf:dynamic-state>
 <xxf:action>
  <xxf:control-values>
   <xxf:control id="xforms-element-4">hello</xxf:control>
  </xxf:control-values>
 </xxf:action>
</xxf:event-response>


<?xml version="1.0" encoding="utf-8"?>
<xxf:event-response xmlns:xxf=" http://orbeon.org/oxf/xml/xforms">
 <xxf:dynamic-state>pers:CC3568DF-0441-DAB0-4FE8-33383C2CCE23</xxf:dynamic-state>
 <xxf:action>
  <xxf:control-values/>
  <xxf:server-events>X2y6DZ/6qm2DVz4pc7gQetVNz29jPV4yPY3xtaKOW+oFk4P2obpNW7dHDZeLo8ANGMgfWQxD+g+DZ0 k6KSQkwS3xlRSQBM2ljACunHSgxX3FdcpxHvCCwkhTkGdQ4DtBkruDc3tGg8HAHR1yVsgrzOr8k7 I6qjDF8zk1rkWdwhe8izHJUEGPMTfEmF7Twde4NU5yijP8JJpGsfu1vBzggxuTRrOQ92sbElm08V P4EGZKhI63ks4JqAsA==</xxf:server-events>
  <xxf:submission action="/ops/xforms-server-submit" method="POST" replace="all"/>
 </xxf:action>
</xxf:event-response>


I find it curious to see the HTML has ... calendar references. There is nothing suggesting such a form. The log shows the correct instance submitted:


2007-12-17 14:10:13,557 DEBUG XFormsServer  - XForms - dispatching event: xxforms-submit - form-submit - at line 114 of XFormsEventFactory.java
2007-12-17 14:10:13,557 DEBUG XPathCache  - makeObject(/acm/xforms/xform.action)
2007-12-17 14:10:13,572 DEBUG XFormsServer  - XForms - setting request body: <?xml version="1.0" encoding="UTF-8"?>
<acm-data xmlns:xf="http://www.w3.org/2002/xforms"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                <importable-data>
                    <asset>
                        <description>hello</description>
                    </asset>
                </importable-data>
</acm-data>

Then the exception:

2007-12-17 14:10:13,572 ERROR ProcessorService  - Exception at line 27 of oxf:/config/xforms- widgets.xsl (processing submission)
java.lang.IllegalArgumentException: path must begin with a "/"
        at com.evermind.server.http.HttpApplication.getRequestDispatcher(HttpApplication.java:1668)
        at org.orbeon.oxf.servlet.ServletExternalContext.getRequestDispatcher(ServletExternalContext.java:857)
        at org.orbeon.oxf.xforms.XFormsSubmissionUtils.doOptimized(XFormsSubmissionUtils.java:92)
        at org.orbeon.oxf.xforms.XFormsModelSubmission.performDefaultAction (XFormsModelSubmission.java:686)
        at org.orbeon.oxf.xforms.XFormsContainingDocument.dispatchEvent(XFormsContainingDocument.java :980)
        at org.orbeon.oxf.xforms.XFormsContainingDocument.executeExternalEvent(XFormsContainingDocument.java:809)
        at org.orbeon.oxf.xforms.processor.XFormsServer.executeExternalEventPrepareIfNecessary(XFormsServer.java:283)
        at org.orbeon.oxf.xforms.processor.XFormsServer.doIt(XFormsServer.java:223)
        at org.orbeon.oxf.xforms.processor.XFormsServer.start(XFormsServer.java:84)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:650)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren (ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java :647)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:650)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:647)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.getInput (PipelineProcessor.java:138)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java :87)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.readImpl(ConcreteChooseProcessor.java:121)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read (ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:353)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read (ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000(PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor.java:94)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100 (PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java :92)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX (ProcessorImpl.java:353)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX (ProcessorImpl.java:353)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000 (PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor.java :94)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java:92)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read (ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java :1213)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.readImpl(ConcreteChooseProcessor.java :121)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX (ProcessorImpl.java:353)
        at org.orbeon.oxf.processor.IdentityProcessor$1.readImpl(IdentityProcessor.java:33)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$000 (PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$2.run(PipelineProcessor.java :94)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$100(PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$1.readImpl(PipelineProcessor.java:92)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read (ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java :1213)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor$1.readImpl(ConcreteChooseProcessor.java :121)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read(ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$1400 (PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$6.run(PipelineProcessor.java :570)
        at org.orbeon.oxf.processor.ProcessorImpl.executeParents(ProcessorImpl.java:572)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.access$1500(PipelineProcessor.java:64)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$InternalTopOutput.readImpl(PipelineProcessor.java:566)
        at org.orbeon.oxf.processor.ProcessorImpl$7.read(ProcessorImpl.java:1030)
        at org.orbeon.oxf.processor.ProcessorImpl$ProcessorOutputImpl.read (ProcessorImpl.java:1213)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:348)
        at org.orbeon.oxf.processor.ProcessorImpl.readInputAsSAX(ProcessorImpl.java:353)
        at org.orbeon.oxf.processor.NullSerializer.start(NullSerializer.java:31)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:650)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren (ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java :647)
        at org.orbeon.oxf.processor.pipeline.choose.ConcreteChooseProcessor.start(ConcreteChooseProcessor.java:229)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor$11.run(PipelineProcessor.java:650)
        at org.orbeon.oxf.processor.ProcessorImpl.executeChildren(ProcessorImpl.java:554)
        at org.orbeon.oxf.processor.pipeline.PipelineProcessor.start(PipelineProcessor.java:647)
        at org.orbeon.oxf.processor.PageFlowControllerProcessor.start (PageFlowControllerProcessor.java:430)
        at org.orbeon.oxf.pipeline.InitUtils.runProcessor(InitUtils.java:95)
        at org.orbeon.oxf.webapp.ProcessorService.service(ProcessorService.java:96)
        at org.orbeon.oxf.servlet.OPSServletDelegate.service(OPSServletDelegate.java:148)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at org.orbeon.oxf.servlet.OPSServlet.service (OPSServlet.java:75)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:713)
        at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370)
        at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871)
        at com.evermind.server.http.HttpRequestHandler.processRequest (HttpRequestHandler.java:453)
        at com.evermind.server.http.HttpRequestHandler.serveOneRequest(HttpRequestHandler.java :221)
        at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:122)
        at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:111)
        at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
        at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
        at java.lang.Thread.run(Thread.java:595)

Any assistance is appreciated!

On Dec 17, 2007 11:08 AM, Jean Luc <[hidden email]> wrote:
Changing as the subject as I did specify a value for action explicitly and one that does begin with a /, with I still get the same error.
Erik, any thoughts what the cause would be?

Thank you,
JL



Error Message
path must begin with a "/"

Call Stack
Resource URL Line Column Description XML Element
oxf:/config/xforms-widgets.xsl 27 N/A processing submission
dispatching XForms event
event → xxforms-submit
target id → form-submit  <xf:submission action="/myapp/xforms/xform.action" id="form-submit" indent="true" method="post" omit-xml-declaration="true"/>
oxf:/ops/xforms/xforms-server-submit.xpl 61 43 executing processor
name → {http://www.orbeon.com/oxf/processors}xforms-server <p:processor name="oxf:xforms-server">...</p:processor>

Exception Class java.lang.IllegalArgumentException
Message path must begin with a "/"
Servlet Stack Trace
(96 method calls)  Class Name Method Name File Name Line Number
com.evermind.server.http.HttpApplication getRequestDispatcher HttpApplication.java 1668
org.orbeon.oxf.servlet.ServletExternalContext getRequestDispatcher ServletExternalContext.java 857
org.orbeon.oxf.xforms.XFormsSubmissionUtils doOptimized XFormsSubmissionUtils.java 92
org.orbeon.oxf.xforms.XFormsModelSubmission performDefaultAction XFormsModelSubmission.java 686
org.orbeon.oxf.xforms.XFormsContainingDocument dispatchEvent XFormsContainingDocument.java 980
org.orbeon.oxf.xforms.XFormsContainingDocument executeExternalEvent XFormsContainingDocument.java 809
org.orbeon.oxf.xforms.processor.XFormsServer executeExternalEventPrepareIfNecessary XFormsServer.java 283
org.orbeon.oxf.xforms.processor.XFormsServer doIt XFormsServer.java 223
org.orbeon.oxf.xforms.processor.XFormsServer start XFormsServer.java 84
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
 


Exception Class org.orbeon.oxf.xforms.XFormsModelSubmission$XFormsSubmissionException
Message Error while processing xforms:submission
Resource URL oxf:/config/xforms-widgets.xsl
Line 27
Column N/A
Servlet Stack Trace
(93 method calls)  Class Name Method Name File Name Line Number
org.orbeon.oxf.xforms.XFormsModelSubmission performDefaultAction XFormsModelSubmission.java 872
org.orbeon.oxf.xforms.XFormsContainingDocument dispatchEvent XFormsContainingDocument.java 980
org.orbeon.oxf.xforms.XFormsContainingDocument executeExternalEvent XFormsContainingDocument.java 809
org.orbeon.oxf.xforms.processor.XFormsServer executeExternalEventPrepareIfNecessary XFormsServer.java 283
org.orbeon.oxf.xforms.processor.XFormsServer doIt XFormsServer.java 223
org.orbeon.oxf.xforms.processor.XFormsServer start XFormsServer.java 84
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
org.orbeon.oxf.processor.ProcessorImpl executeChildren ProcessorImpl.java 554
org.orbeon.oxf.processor.pipeline.PipelineProcessor start PipelineProcessor.java 647
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
 


Exception Class org.orbeon.oxf.common.OXFException
Message line 27 of oxf:/config/xforms-widgets.xsl (processing submission): Error while processing xforms:submission
path must begin with a "/" 
Resource URL oxf:/config/xforms-widgets.xsl
Line 27
Column N/A
Servlet Stack Trace
(89 method calls)  Class Name Method Name File Name Line Number
org.orbeon.oxf.xforms.processor.XFormsServer doIt XFormsServer.java 264
org.orbeon.oxf.xforms.processor.XFormsServer start XFormsServer.java 84
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
org.orbeon.oxf.processor.ProcessorImpl executeChildren ProcessorImpl.java 554
org.orbeon.oxf.processor.pipeline.PipelineProcessor start PipelineProcessor.java 647
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
org.orbeon.oxf.processor.ProcessorImpl executeChildren ProcessorImpl.java 554
org.orbeon.oxf.processor.pipeline.PipelineProcessor start PipelineProcessor.java 647
org.orbeon.oxf.processor.pipeline.PipelineProcessor$1 getInput PipelineProcessor.java 138
org.orbeon.oxf.processor.pipeline.PipelineProcessor$1 readImpl PipelineProcessor.java 87
 





On Dec 17, 2007 10:34 AM, Jean Luc <[hidden email]> wrote:
Yes, I've tried now. Same error. I've also tried "/." just to see if it makes a difference, but it doesn't either.

On Dec 14, 2007 5:10 PM, Stephane Ruchet < [hidden email]> wrote:
Did you try action="." ?

Jean Luc a écrit :
Hi [Erik],

I'm using Orbeon (3.6.0.200712061930) deployed as a separate WAR. I'm using a simple form in whose <submission> element I don't want to specify the action attribute - the submission would happen at the same URL. The attribute is optional as per the XForms spec.

However, I get the following errors. Please advise.

Thanks,
JL


With an empty value for the action attribute:

<xf:submission id="form-submit" action="" method="post" omit-xml-declaration="true" indent="true"/>


Exception Class java.lang.IllegalArgumentException
Message path must begin with a "/"
Servlet Stack Trace
(96 method calls)  Class Name Method Name File Name Line Number
com.evermind.server.http.HttpApplication getRequestDispatcher HttpApplication.java 1668
org.orbeon.oxf.servlet.ServletExternalContext getRequestDispatcher ServletExternalContext.java 857
org.orbeon.oxf.xforms.XFormsSubmissionUtils doOptimized XFormsSubmissionUtils.java 92
org.orbeon.oxf.xforms.XFormsModelSubmission performDefaultAction XFormsModelSubmission.java 686
org.orbeon.oxf.xforms.XFormsContainingDocument dispatchEvent XFormsContainingDocument.java 980
org.orbeon.oxf.xforms.XFormsContainingDocument executeExternalEvent XFormsContainingDocument.java 809
org.orbeon.oxf.xforms.processor.XFormsServer executeExternalEventPrepareIfNecessary XFormsServer.java 283
org.orbeon.oxf.xforms.processor.XFormsServer doIt XFormsServer.java 223
org.orbeon.oxf.xforms.processor.XFormsServer start XFormsServer.java 84
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
 


org.orbeon.oxf.xforms.XFormsModelSubmission$XFormsSubmissionException 
Exception Class org.orbeon.oxf.xforms.XFormsModelSubmission$XFormsSubmissionException
Message Error while processing xforms:submission
Resource URL oxf:/config/xforms- widgets.xsl
Line 27
Column N/A
Servlet Stack Trace
(93 method calls)  Class Name Method Name File Name Line Number
org.orbeon.oxf.xforms.XFormsModelSubmission performDefaultAction XFormsModelSubmission.java 872
org.orbeon.oxf.xforms.XFormsContainingDocument dispatchEvent XFormsContainingDocument.java 980
org.orbeon.oxf.xforms.XFormsContainingDocument executeExternalEvent XFormsContainingDocument.java 809
org.orbeon.oxf.xforms.processor.XFormsServer executeExternalEventPrepareIfNecessary XFormsServer.java 283
org.orbeon.oxf.xforms.processor.XFormsServer doIt XFormsServer.java 223
org.orbeon.oxf.xforms.processor.XFormsServer start XFormsServer.java 84
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
org.orbeon.oxf.processor.ProcessorImpl executeChildren ProcessorImpl.java 554
org.orbeon.oxf.processor.pipeline.PipelineProcessor start PipelineProcessor.java 647
org.orbeon.oxf.processor.pipeline.PipelineProcessor$11 run PipelineProcessor.java 650
 More... 
 

With a missing action atribute

<xf:submission id="form-submit" method="post" omit-xml-declaration="true" indent="true"/>

xforms:submission: action attribute or resource attribute is missing.

Resource URL Line Column Description XML Element
oxf:/config/xforms-widgets.xsl 27 N/A processing xforms:submission attributes
dispatching XForms event
event → xforms-submit
target id → form-submit
dispatching XForms event
event → DOMActivate
target id → xforms-element-12  <xf:submission id="form-submit" indent="true" method="post" omit-xml-declaration="true"/>
oxf:/ops/xforms/xforms-server.xpl 55 103 reading processor output
name → response
id → xml-response  <p:output name="response" id="xml-response" schema-href=" xforms-server-response.rng"/>
oxf:/ops/xforms/xforms-server.xpl 61 52 executing processor
name → {http://www.orbeon.com/oxf/processors}xml-serializer <p:processor name="oxf:xml-serializer">...</p:processor>



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws







--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: path must begin with a "/" (details)

Erik Bruchez
Administrator
In reply to this post by Jean Luc-2
Jean-Luc,

I don't think the empty event is the direct cause of the issue. Those  
shouldn't happen, but it looks like the client sends them from time to  
time.

> I find it curious to see the HTML has ... calendar references. There  
> is nothing suggesting such a form. The log shows the correct  
> instance submitted:

That's because all xforms:input produce that HTML markup. We would  
like to change this in the future, but this should be of no  
consequence for now.

> Then the exception:
>
> 2007-12-17 14:10:13,572 ERROR ProcessorService  - Exception at line  
> 27 of oxf:/config/xforms- widgets.xsl (processing submission)
> java.lang.IllegalArgumentException: path must begin with a "/"
>         at  
> com
> .evermind
> .server
> .http.HttpApplication.getRequestDispatcher(HttpApplication.java:1668)
>         at  
> org
> .orbeon
> .oxf
> .servlet
> .ServletExternalContext
> .getRequestDispatcher(ServletExternalContext.java:857)
>         at  
> org
> .orbeon
> .oxf
> .xforms.XFormsSubmissionUtils.doOptimized(XFormsSubmissionUtils.java:
> 92)

I do not reproduce this with a simple example. Is there any way you  
could package and zip a simple app that shows the problem, with the  
appropriate instructions?

Also try to disable optimized submissions in properties.xml:

   <property as="xs:boolean" name="oxf.xforms.optimize-local-
submission" value="false"/>

-Erik

--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: path must begin with a "/" (details)

Jean Luc-2
I do not reproduce this with a simple example. Is there any way you
could package and zip a simple app that shows the problem, with the
appropriate instructions?

I've created one, will send it directly to you.
 


Also try to disable optimized submissions in properties.xml:

  <property as="xs:boolean" name="oxf.xforms.optimize-local-
submission" value="false"/>


Changing this setting eliminated the error. The issue of having to specify the attribute is still present. Also I had to specify the fully-qualified context to the submission URL (which is a problem; in our case the xforms are user-defined and the forms shouldn't be dependent on the deployment context). Anyway, details in a separate email.

Thanks,
JL




--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws
Reply | Threaded
Open this post in threaded view
|

Re: Re: path must begin with a "/" (details)

Erik Bruchez
Administrator
On Dec 18, 2007, at 11:29 AM, Jean Luc wrote:

> I do not reproduce this with a simple example. Is there any way you
> could package and zip a simple app that shows the problem, with the
> appropriate instructions?
>
> I've created one, will send it directly to you.

Cool, looking forward to it.

> Also try to disable optimized submissions in properties.xml:
>
>   <property as="xs:boolean" name="oxf.xforms.optimize-local-
> submission" value="false"/>
>
>
> Changing this setting eliminated the error. The issue of having to  
> specify the attribute is still present. Also I had to specify the  
> fully-qualified context to the submission URL (which is a problem;  
> in our case the xforms are user-defined and the forms shouldn't be  
> dependent on the deployment context). Anyway, details in a separate  
> email.
Sounds good (I am not sure what the "issue of having to specify the  
attribute" is).

-Erik

--
Orbeon Forms - Web Forms for the Enterprise Done the Right Way
http://www.orbeon.com/



--
You receive this message as a subscriber of the [hidden email] mailing list.
To unsubscribe: mailto:[hidden email]
For general help: mailto:[hidden email]?subject=help
OW2 mailing lists service home page: http://www.ow2.org/wws