Try moving your Home.html and Home.properties to the directory above WEB-INF, the root of the servlet context.
When Tapestry creates the "implicit" specification for the page, it won't look in WEB-INF for the template to determine if it exists...it only looks relative to context root (see PageSpecificationResolverImpl.searchForPage). We solved this with a custom SpecificationResolverDelegate that does the appropriate searching relative to the application spec, which will search in WEB-INF if that's where the app spec is. I can share that code if you're interested. jeff -----Original Message----- From: Michael Melvin [mailto:[EMAIL PROTECTED] Sent: Thursday, January 05, 2006 7:57 AM To: [email protected] Subject: Eliminating .page files in 4.0 I seem to be having an issue doing this, and have read several places that say it can be done. Everything is fine with the Home.page present (picks up the properties, etc), but as soon as I remove the file, I get the "Page 'Home' not found in namespace" error. I don't know if the entry in publicweb.application is correct or not, but it appeared to be right according to the examples that I saw. This is Tapestry 4.0-rc-3, and JBoss 4.0.3, Java 1.5.0_b3. I am trying to use annotations only, and avoid the use of a 3rd file (.java, .html and .page) if possible. My current setup is as follows: Directory Structure: WEB-INF |_ classes |_ ca |_ digitalperversion |_ publicweb |_ pages |_ Home.java |_ Home.html |_ Home.properties |_ Home.page |_ publicweb.application |_ web.xml Home.html: <html> <head> <title><span jwcid="@Insert" value="ognl:pageTitle">Title</span></title> </head> Hello World! </html> Home.java: package ca.digitalperversion.publicweb.pages; import org.apache.tapestry.annotations.Message; import org.apache.tapestry.html.BasePage; import ca.tripcentral.badger.dao.ServerDao; public abstract class Home extends BasePage { @Message public abstract String getPageTitle(); } Home.page: <?xml version="1.0"?> <!DOCTYPE page-specification PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd"> <page-specification /> Home.properties: page-title=Home Title publicweb.application: <?xml version="1.0"?> <!DOCTYPE application PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN" "http://jakarta.apache.org/tapestry/dtd/Tapestry_4_0.dtd"> <application name="Public Website"> <meta key="org.apache.tapestry.page-class-packages" value="ca.digitalperversion.publicweb.pages"/> <library id="contrib" specification-path="classpath:/org/apache/tapestry/contrib/Contrib.libra ry"/> </application> web.xml: <?xml version="1.0"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/TR/xmlschema-1/" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> <display-name>Public Web</display-name> <servlet> <servlet-name>publicweb</servlet-name> <servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>publicweb</servlet-name> <url-pattern>/app</url-pattern> </servlet-mapping> </web-app> Thanks, -mike --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
