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]