page classes in tapestry are NOT actions.

Your class must have a default constructor (or none).
What you wrote as the c'tor should really be a listener-method.
So instead of
    public LoginComponent(IRequestCycle cycle) {...
use
   public void doLogin(IRequestCycle cycle){...

and change the form-listener accordingly

> -----Original Message-----
> From: david b [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, February 22, 2006 5:58 PM
> To: [email protected]
> Subject: Unable to instantiate an instance of class ...
> 
> 
> 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(PageLo
> ader.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(AbstractEngi
> ne.java:872)
>     * 
> org.apache.tapestry.ApplicationServlet.doService(ApplicationSe
> rvlet.java:197)
>     * 
> org.apache.tapestry.ApplicationServlet.doGet(ApplicationServle
> t.java:158)
>     * javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>     * javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>     * 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilt
> er(ApplicationFilterChain.java:252)
>     * 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(Appli
> cationFilterChain.java:173)
>     * 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardW
> rapperValve.java:214)
>     * 
> org.apache.catalina.core.StandardContextValve.invoke(StandardC
> ontextValve.java:178)
>     * 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHost
> Valve.java:126)
>     * 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReport
> Valve.java:105)
>     * 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEn
> gineValve.java:107)
>     * 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdap
> ter.java:148)
>     * 
> org.apache.coyote.http11.Http11Processor.process(Http11Process
> or.java:825)
>     * 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandle
> r.processConnection(Http11Protocol.java:738)
>     * 
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolT
> cpEndpoint.java:526)
>     * 
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(Le
> aderFollowerWorkerThread.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]
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to