I have a this simple form with repeater:
The flowscript invoke dao.getAllRows, and pass to form/bionding a Colection:
------------ BEGIN flowscript---------------------------
Elenco = dao.getAllRows(manager);
form.load(Elenco);
......
form.save(Elenco);
------------ END flowscript---------------------------
------------ BEGIN OJB METHOD---------------------------
public Collection getAllRows(PersistenceManager pm) {
PersistenceBroker broker =
PersistenceBrokerFactory.defaultPersistenceBroker();
Criteria crit = new org.apache.ojb.broker.query.Criteria();
QueryByCriteria q = new QueryByCriteria(Docuassist.class, crit);
Collection objects = (Collection)broker.getCollectionByQuery(q);
q.addOrderByAscending("dgprogre");
broker.close();
return objects;
}
------------ END OJB METHOD---------------------------
When I modify 1 or more bean in the collection and in flowscript call
form.save(Elenco);
....
I save correctly the bean in database.
The problem occur when i try to insert new row
I receive this error on:
form.save(Elenco);
java.lang.NoSuchMethodException:
org.apache.ojb.broker.util.collections.RemovalAwareCollection.add(w4b.com.cassagest.db.Docuassist)
in my binding definition I have this:
<fb:on-insert-row>
<fb:insert-bean classname="w4b.com.cassagest.db.Docuassist"
addmethod="add"/>
</fb:on-insert-row>
How Can I add object to a Collection from OJB?
Thanks in advance, Alessandro
_____________________________________________________________________________
MODEL:
<fd:form xmlns:fd="http://apache.org/cocoon/forms/1.0#definition"
xmlns:label="http://w4b.it/cocoon/label/"
xmlns:i18n="http://apache.org/cocoon/i18n/2.1">
<fd:widgets>
<fd:repeater id="Docuassist">
<fd:label>Repeater di docuassist</fd:label>
<fd:widgets>
<fd:field id="dgprogre">
<fd:label>Progressivo</fd:label>
<fd:datatype base="integer"/>
</fd:field>
<fd:field id="dgdescri">
<fd:label>Descrizione ridotta</fd:label>
<fd:datatype base="string">
</fd:datatype>
</fd:field>
<fd:field id="dgdescre">
<fd:label>Descrizione estesa</fd:label>
<fd:datatype base="string">
</fd:datatype>
</fd:field>
<fd:row-action id="up" command="move-up"/>
<fd:row-action id="down" command="move-down"/>
<fd:booleanfield id="select">
<fd:label>Select</fd:label>
</fd:booleanfield>
</fd:widgets>
</fd:repeater>
<fd:repeater-action id="addRow" command="add-row"
repeater="Docuassist">
<fd:label>Aggiungi riga</fd:label>
</fd:repeater-action>
<fd:repeater-action id="removeRow" command="delete-rows"
repeater="Docuassist" select="select">
<fd:label>Rimuovi le righe selezionate</fd:label>
</fd:repeater-action>
</fd:widgets>
</fd:form>
_________________________________________________________________________________________________
BINDING
<fb:repeater id="Docuassist" parent-path="." row-path=".">
<fb:identity>
<fb:value id="dgprogre" path="dgprogre"/>
</fb:identity>
<fb:on-bind>
<fb:value id="dgdescri" path="dgdescri"/>
<fb:value id="dgdescre" path="dgdescre"/>
</fb:on-bind>
<fb:unique-row>
<fb:unique-field id="dgprogre" path="dgprogre"/>
</fb:unique-row>
<fb:on-insert-row>
<fb:insert-bean classname="w4b.com.cassagest.db.Docuassist"
addmethod="add"/>
</fb:on-insert-row>
</fb:repeater>
_______________________________________________________________________________________________________
STACKTRACE
Message:
org.apache.ojb.broker.util.collections.RemovalAwareCollection.add(w4b.com.cassagest.db.Docuassist)
Description: org.apache.cocoon.ProcessingException: Error calling
continuation at
resource://org/apache/cocoon/forms/flow/javascript/Form.js:228:-1 at
file:/var/webapps/cassagest/cforms/cforms/flow/cattura.js:175:-1 at
<map:call> - file:/var/webapps/cassagest/cforms/sitemap.xmap:356:82 at
<map:mount> - file:/var/webapps/cassagest/sitemap.xmap:727:83
Sender: org.apache.cocoon.servlet.CocoonServlet
Source: Cocoon Servlet
Request URI
cforms/continue
cause
java.lang.NoSuchMethodException:
org.apache.ojb.broker.util.collections.RemovalAwareCollection.add(w4b.com.cassagest.db.Docuassist)
request-uri
/cassagest/cforms/continue
full exception chain stacktrace
org.apache.cocoon.ProcessingException: Error calling continuation
at resource://org/apache/cocoon/forms/flow/javascript/Form.js:228:-1
at file:/var/webapps/cassagest/cforms/cforms/flow/cattura.js:175:-1
at <map:call> - file:/var/webapps/cassagest/cforms/sitemap.xmap:356:82
at <map:mount> - file:/var/webapps/cassagest/sitemap.xmap:727:83
at
org.apache.cocoon.ProcessingException.throwLocated(ProcessingException.java:144)
at
org.apache.cocoon.components.flow.javascript.LocationTrackingDebugger.getException(LocationTrackingDebugger.java:132)
at
org.apache.cocoon.components.flow.javascript.fom.FOM_JavaScriptInterpreter.handleContinuation(FOM_JavaScriptInterpreter.java:856)
at
org.apache.cocoon.components.treeprocessor.sitemap.CallFunctionNode.invoke(CallFunctionNode.java:123)
at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
at
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
at
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:142)
at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
at
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
at
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
at
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:248)
at
org.apache.cocoon.components.treeprocessor.sitemap.MountNode.invoke(MountNode.java:117)
at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:46)
at
org.apache.cocoon.components.treeprocessor.sitemap.PreparableMatchNode.invoke(PreparableMatchNode.java:130)
at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
at
org.apache.cocoon.components.treeprocessor.sitemap.PipelineNode.invoke(PipelineNode.java:142)
at
org.apache.cocoon.components.treeprocessor.AbstractParentProcessingNode.invokeNodes(AbstractParentProcessingNode.java:68)
at
org.apache.cocoon.components.treeprocessor.sitemap.PipelinesNode.invoke(PipelinesNode.java:92)
at
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:234)
at
org.apache.cocoon.components.treeprocessor.ConcreteTreeProcessor.process(ConcreteTreeProcessor.java:176)
at
org.apache.cocoon.components.treeprocessor.TreeProcessor.process(TreeProcessor.java:248)
at org.apache.cocoon.Cocoon.process(Cocoon.java:679)
at
org.apache.cocoon.servlet.CocoonServlet.service(CocoonServlet.java:1154)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
at org.apache.catalina.core.StandardPipeline.invoke(Stand
--
-------------------------------
Alessandro Vincelli
W4B - web for business s.r.l.
Firenze
via Pellicceria 10 - 50123
E-mail: [EMAIL PROTECTED]
tel: 055-2654270
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]