On 01/03/16 10:57, Miguel Valencia wrote:
> Hi
> 
>  I have detected an error in my project with Apache Cocoon using dispatcher
> plugin.
> 
> ERROR cocoon.access - Internal Cocoon Problem
> Caused by: org.apache.forrest.dispatcher.exception.ContractException:
> Could not invoke the transformation for the contract "meta". Error java:
> javax.xml.transform.TransformerException: Premature end of file.
> 
> Error sequence is:
> a) Ask some page of my project
> b) Wait until expire jx cache
> c) Ask again the same page
> 
> The web page of my project using forrest, so using structurer that are
> composite with contracts and caching with jx tag. 
> 
> Example jx caching:
> 
> jx:cache-key=
> "${Packages.org.apache.forrest.dispatcher.impl.helper.Key
> (cocoon.request).toString()}"
> jx:cache-validity=
> "${Packages.org.apache.excalibur.source.impl.validity.
> ExpiresValidity(300000)}">
> 
> Example call to contract:
> 
> <forrest:contract name="comun/meta"
> dataURI="servlet:conector:/estatico/drupal/metadatos.xml">
>   <forrest:property name="url">/${getRequest}/</forrest:property>
> </forrest:contract>
> 
> 
> Sometimes to resolve some contracts, dispatcher can not get XSLT of contract
> and then appear this error.
> 
> Two things I have seen:
> 1) If not used jx cache this error not appear.
> 2) I have debug this problema until class:
> org.apache.forrest.dispatcher.impl.CocoonResolver and if put synchronized
> block here:
> 
> source = resolver.resolveURI(uri);      
> stream = new BufferedInputStream(source.getInputStream());
> 
> then, it seems that error not show.
> 
> has anyone seen this error before?
> 
> Thanks
> 


Hola Miguel, como estamos? ;)

It looks like that either the data url of the contract or the
${getRequest} is not resolved.

${getRequest} is a xml, coming from where?

salu2

-- 
Thorsten Scherler <thorsten.at.apache.org>
codeBusters S.L. - web based systems
<consulting, training and solutions>
http://www.codebusters.es/

Attachment: signature.asc
Description: OpenPGP digital signature