It's that odd constructor, that takes an IRequestCycle. Tapestry expects there to be a public, no-args constructor.
It probably needs to check for this and produce a better error; please add a bug to Jira. On 2/22/06, david b <[EMAIL PROTECTED]> wrote: > Hello, > > I attempting to make a simple application using Tapestry. I have tomcat 5.5.7 > using JDK 1.5. > > Going to this url: http://localhost:8080//firstApp/app?service=page/Login > > I am getting this error: > Unable to instantiate an instance of class > com.entercite.finance.model.abstrt.LoginComponent$Enhance_0. > location: context:/Login.page, line 6, column 79 > > I use ant and compile the source code. Here is the development structure and > code. > > C:\ > |-main > | > |-HelloTapestry > | |-ant > | |-build.bat > | > |-build > | |-Login.html > | |-Login.page > | |-Main.html > | |-config(empty) > | |-log(empty) > | |-WEB-INF > | |-web.xml > | |-classes(all java classes) > | |-lib (Copy of all from lib) > | > |-deploy (firstApp.war) > | > |-lib > | |-tapestry-3.0.jar, tapestry-contrib-3.0.jar, ognl-2.6.3.jar, > log4j-1.2.11.jar > | |-A bunch of apache commons jars > | |-jakarta-oro-2.0.6.jar, javassist-2.5.1.jar, spring.jar, > hibernate3.jar, bsf-2.3.0.jar > | > |-src > | > |-context > | |-Login.html > | |-login.page > | |-Main.html > | | > | |-WEB-INF > | |-web.xml > |-java > |-com > |-entercite > |-finance > |-model > |-Login.java > |-abstrt > |-LoginComponent.java > > > web.xml > ---------------------------------------------------------------------------- > <?xml version="1.0" encoding="UTF-8"?> > <!DOCTYPE web-app > PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" > "http://java.sun.com/dtd/web-app_2_3.dtd"> > > <web-app> > <display-name>Tutorial: HelloWorld</display-name> > <servlet> > <servlet-name>app</servlet-name> > <servlet-class>org.apache.tapestry.ApplicationServlet</servlet-class> > <load-on-startup>0</load-on-startup> > </servlet> > <servlet-mapping> > <servlet-name>app</servlet-name> > <url-pattern>/app</url-pattern> > </servlet-mapping> > </web-app> > > ---------------------------------------------------------------------------- > login.html > ---------------------------------------------------------------------------- > <html jwcid="@Shell" title="Login"> > <body> > > <span jwcid="@Conditional" condition="ognl:message"> > <font color="red"> > <span jwcid="@Insert" value="ognl:message"> Error Message </span> > </font> > </span> > > <p/> > > <form jwcid="@Form" listener="ognl:listeners.loginComponent"> > <table> > <tr> > <th>User Name:</th> > <td> > <input type="text" jwcid="@TextField" > value="ognl:login.userName" > size="30"/> > </td> > </tr> > <tr> > <th>Password:</th> > <td> > <input type="password" jwcid="@TextField" > value="ognl:login.password" > hidden="ognl:true" > size="30"/> > </td> > </tr> > <tr> > <td><input type="submit" value="Login"/></td> > </tr> > </table> > </form> > > <hr/> > <p><a href="#" jwcid="@PageLink" page="Home">Return to Home page</a>.</p> > </body> > </html> > ---------------------------------------------------------------------------- > > Login.page > ---------------------------------------------------------------------------- > <?xml version="1.0"?> > <!DOCTYPE page-specification PUBLIC > "-//Apache Software Foundation//Tapestry Specification 3.0//EN" > "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd"> > > <page-specification class="com.entercite.finance.model.abstrt.LoginComponent"> > <property-specification name="message" type="java.lang.String"/> > <property-specification name="login" > type="com.entercite.finance.model.Login"/> > </page-specification> > ---------------------------------------------------------------------------- > > login > ---------------------------------------------------------------------------- > package com.entercite.finance.model; > import java.util.*; > > public class Login { > private Integer loginId = new Integer(0); > private String userName = ""; > private String password = ""; > private Integer permissionType = new Integer(0); > > public void setLoginId(Integer loginId){ this.loginId = loginId; } > public Integer getLoginId(){return this.loginId;} > > public void setUserName(String userName){ this.userName = userName;} > public String getUserName(){return this.userName;} > > public void setPassword(String password){this.password = password;} > public String getPassword(){return this.password;} > > public void setPermissionType(Integer permissionType){this.permissionType > = permissionType;} > public Integer getPermissionType(){return this.permissionType;} > } > ---------------------------------------------------------------------------- > > LoginComponent > ---------------------------------------------------------------------------- > package com.entercite.finance.model.abstrt; > > import com.entercite.finance.model.Login; > import org.apache.tapestry.IRequestCycle; > import org.apache.tapestry.html.BasePage; > > public abstract class LoginComponent extends BasePage { > > public abstract Login getLogin(); > public abstract void setLogin(Login login); > public abstract void setMessage(String message); > > public LoginComponent(IRequestCycle cycle) { > > String u = this.getLogin().getUserName(); > String p = this.getLogin().getPassword(); > > if(isValidLogin(u,p) ) { > System.out.println("push to main"); > cycle.activate("Main"); > return; > } > > setMessage("Invalid user name or password."); > } > > private boolean isValidLogin(String userName, String password) { > return "tapestry".equalsIgnoreCase(userName); > } > } > > The stack is : > > java.lang.InstantiationException > com.entercite.finance.model.abstrt.LoginComponent$Enhance_0 > Stack Trace: > > * java.lang.Class.newInstance0(Unknown Source) > * java.lang.Class.newInstance(Unknown Source) > * > org.apache.tapestry.pageload.PageLoader.instantiatePage(PageLoader.java:694) > * org.apache.tapestry.pageload.PageLoader.loadPage(PageLoader.java:756) > * org.apache.tapestry.pageload.PageSource.getPage(PageSource.java:153) > * org.apache.tapestry.engine.RequestCycle.getPage(RequestCycle.java:196) > * org.apache.tapestry.engine.PageService.service(PageService.java:73) > * > org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java:872) > * > org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java:197) > * > org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:158) > * javax.servlet.http.HttpServlet.service(HttpServlet.java:689) > * javax.servlet.http.HttpServlet.service(HttpServlet.java:802) > * > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) > * > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) > * > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214) > * > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) > * > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) > * > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) > * > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) > * > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) > * > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825) > * > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738) > * > org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526) > * > org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) > * > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684) > * java.lang.Thread.run(Unknown Source) > > > What am I doing wrong? > > -- > ___________________________________________________ > Play 100s of games for FREE! http://games.mail.com/ > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > -- Howard M. Lewis Ship Independent J2EE / Open-Source Java Consultant Creator, Jakarta Tapestry Creator, Jakarta HiveMind Professional Tapestry training, mentoring, support and project work. http://howardlewisship.com --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
