here is the actual error

An unexpected application exception has occurred.java.lang.RuntimeExceptionPage
 edit/Coach did not generate any markup when rendered. This could be 
because its template file could not be located, or because a render 
phase method in the page prevented rendering.


java/org.tynamo.examples.hibernatesecurity.pages.edit.CoachEdit.java



resources/org.tynamo.examples.hibernatesecurity.pages.edit.CoachEdit.tml

webapp/edit/CoachEdit.tml

I tried locating the template in the two above places but it still does find it.
according to tapestry docs, it is valid to locate pages beneath the pages dir 
and other folders beneath

could a render phase method be tripping it up ?

package org.tynamo.examples.hibernatesecurity.pages.edit;


import org.apache.tapestry5.EventConstants;
import org.apache.tapestry5.Link;
import org.apache.tapestry5.annotations.CleanupRender;
import org.apache.tapestry5.annotations.Log;
import org.apache.tapestry5.annotations.OnEvent;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.hibernate.annotations.CommitAfter;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.ContextValueEncoder;
import org.apache.tapestry5.services.PageRenderLinkSource;
import org.tynamo.examples.hibernatesecurity.model.Coach;
import org.tynamo.examples.hibernatesecurity.pages.Show;
import org.tynamo.routing.annotations.At;
import org.tynamo.services.DescriptorService;
import org.tynamo.services.PersistenceService;
import org.tynamo.util.TynamoMessages;
import org.tynamo.util.Utils;

/**
 * Page for editing and updating objects.
 *
 * @note:
 * When extending this page for customization purposes, it's better to copy & 
paste code than trying to use inheritance.
 *
 */
@At(value="/{0}/{1}/edit", order = "before:Show")
public class CoachEdit
{
    @Inject
    private ContextValueEncoder contextValueEncoder;

    @Inject
    private Messages messages;

    @Inject
    private PersistenceService persistenceService;
    
    @Inject
    private DescriptorService descriptorService;
    
    @Inject
    private PageRenderLinkSource pageRenderLinkSource;

    @Property(write = false)
    private Class beanType = Coach.class;

    @Property
    private Object bean;

    @OnEvent(EventConstants.ACTIVATE)
    Object activate(Class clazz, String id)
    {

        if (clazz == null) return Utils.new404(messages);

        this.bean = contextValueEncoder.toValue(clazz, id);
        this.beanType = clazz;

        if (bean == null) return Utils.new404(messages);

        return null;
    }

    @CleanupRender
    void cleanup()
    {
        bean = null;
        beanType = null;
    }

    /**
     * This tells Tapestry to put type & id into the URL, making it 
bookmarkable.
     */
    @OnEvent(EventConstants.PASSIVATE)
    Object[] passivate()
    {
        return new Object[]{beanType, bean};
    }

    @Log
    @CommitAfter
    @OnEvent(EventConstants.SUCCESS)
    Link success()
    {
        persistenceService.save(bean);
        return back();
    }

    @OnEvent("cancel")
    Link back()
    {
        return pageRenderLinkSource.createPageRenderLinkWithContext(Show.class, 
beanType, bean);
    }

    public String getListAllLinkMessage()
    {
        return TynamoMessages.listAll(messages, beanType);
    }

    public String getTitle()
    {
        return TynamoMessages.edit(messages, beanType);
    }

}

                                          

Reply via email to