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]

Reply via email to