On Thu, 2010-08-26 at 10:41 +0200, Vicent Mas wrote: > Hi, > > I'm trying to update my project website. It uses dispatcher and was > setup before the > merge of the dispatcher and the core plugins. The website has several > customisations > of contracts (mainly core plugin contracts) and pelt html panels. > > Now I've an updated my local repository of forrest but cannot build my > website. It seems > that it is not able to find my custom contracts. A $ forrest run of my > site gives the following > browser message: > > Internal Server Error > > Message: null > > Description: No details available. > > Sender: org.apache.cocoon.servlet.CocoonServlet > > Source: Cocoon Servlet > > cause > > Could not setup the transformer for the contract "noFt". > javax.xml.transform.TransformerConfigurationException: > javax.xml.transform.TransformerException: Fatal: > javax.xml.transform.TransformerException: Errors in XSLT > transformation: > Fatal: java.lang.NullPointerException > > > Request URI > > index.html > > request-uri > > /index.html
Hmm, yeah the noFT is a fallback if no contract is found, however it should not fail like this since I added this functionality with the merge. It should simply add the note "Error 440 - Template not found." instead. > > > Editing my customised pelt html panels and removing from them the > calls to customised contracts fixes the problem. That is > why I think that customised contracts are not found (the above message > doesn't means very much for me :-( So you are saying that the panels can be found? http://svn.apache.org/viewvc/forrest/trunk/whiteboard/plugins/org.apache.forrest.plugin.internal.dispatcher/locationmap.xml?view=markup <!-- for panel --> ... <location src="{lm:themer.project.dir}/themes/{global:dispatcher.theme}/panels/{1}{global:dispatcher.panel.ext}" /> <location src="{lm:themer.project.dir}/themes/{global:dispatcher.fallback.theme}/panels/{1}{global:dispatcher.panel.ext}" /> <!-- for contract --> ... <location src="{lm:themer.project.dir}/themes/{global:dispatcher.theme}/{1}/{2}{global:dispatcher.contract.ext}" /> <location src="{lm:themer.project.dir}themes/{global:dispatcher.fallback.theme}/{1}/{2}{global:dispatcher.contract.ext}" /> Meaning they are pointing to the same root. However let us see your setup: > > The organization of my website folder is: > > root/ > src/ > documentation/ > classes/ > conf/ > content/ > resources/ > images/ > schema/ > stylesheets/ > themes/ > common/html/ # My customised contracts are here > common.fv > pelt/ > css/ > images/ > panels/ # My customised panels are here > pelt.fv > translations/ > Can you do a test for me? Place ONE customized contract into pelt/html instead of common/html and activate the contract. Does the problem still is visible? Do you have a custom locationmap, since that could as well override the default behavior. What are the values for the following seen in http://localhost:8888/index.props: dispatcher.contract-ext dispatcher.fallback.theme dispatcher.theme My guess right now (depends on which version your dispatcher site was based on) that dispatcher.contract-ext are not ".contract.xml" and if it is that value then your custom contracts may not have this extension. The easiest way is to move them to the new name. Mind as well <property value=".structurer.xml" name="dispatcher.theme-ext"/> Meaning the structurer should as well use the new extension. HTH salu2 > How can I get forrest working as I want? Have I to change the above > organization of folders? > Or have I to change some configuration file so the customised > contracts can be found? > > TIA > > PS: having a look to the Dispatcher quickstart page I've seen it still > contains references to the > core plugin so it seems to be outdated. Yeah, patches to update that page are highly welcome. ;) salu2 > > Vicent > -- Thorsten Scherler <thorsten.at.apache.org> Open Source Java <consulting, training and solutions>