You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cocoon.apache.org by roy huang <li...@hotmail.com> on 2004/03/23 12:39:20 UTC

[Help]Any change due to this database action error or just getConfiguration?

I use database action to save data into database ,the pipeline looks like:
   <map:match pattern="*-add">
    <map:act type="mod-db-add">
     <map:parameter name="descriptor" value="cocoon:raw:/forms/{1}/define_data.xml" />
     <map:parameter name="table-set" value="default" />
     <map:redirect-to uri="cocoon://gtt/message/form/save_ok.html" />
    </map:act>
    <map:redirect-to uri="cocoon://gtt/message/form/save_fail.html" />
   </map:match>

the cocoon:raw:/forms/{1}/define_data.xml looks like
   <map:match pattern="forms/*/define_data.xml">  
    <map:generate src="forms/{1}/form_define.xml" />
    <map:transform type="formdefine">
     <map:parameter name="type" value="data" />
    </map:transform>   
    <map:serialize type="xml" />
   </map:match>

the formdefine transformer is writter by myself to get the corret xml file from the defien_data.xml(all config save in this file).
It works fine in 2.1.4,but in current cvs version ,it will produce an error:

Original Exception: org.apache.avalon.framework.configuration.ConfigurationException: Error trying to load configurations for resource: cocoon://gtt/apps/app1/forms/test/define_data.xml

	at org.apache.cocoon.acting.AbstractComplementaryConfigurableAction.getConfiguration(AbstractComplementaryConfigurableAction.java:102)

	at org.apache.cocoon.acting.modular.DatabaseAction.act(DatabaseAction.java:614)

I try to find why this error occour,so:
1.I use an pipeline to get the xml file in the same way to cocoon:raw:/forms/{1}/define_data.xml,and save it in define_data.xml
2.I change <map:match pattern="forms/*/define_data.xml">  to 
   <map:match pattern="forms/*/define_data.xml">  
    <map:generate src="forms/{1}/define_data.xml" />
    <map:serialize type="xml" />
   </map:match>
 It works fine,so my transformer did generate the correct xml
3.In my Transformer(extends AbstractSAXTransformer),I insert some println
  in startTransformingElement(String uri,String name,String raw,Attributes attributes)

  System.out.println("name:"+name);//<----for debug only
  if (uri.equals("")) { 
   if (name.equals("root")) 
    this.namespaceURI = Constants.FORM_DEFINE_NS;
   else 
    super.startTransformingElement(uri, name, raw, attributes);
  }
.......

I found when I use this transformer in other condition ,the console will print all the name,so it is corrent.
But if I use it just like upper description,it only print "name:root"(form_define.xml only has this none prefix name as xml root).
It works fine in 2.1.4,so I guess it is some change to "cocoon:" protal due to this error.
WDYT?

Roy Huang