You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by david b <en...@mail.com> on 2006/02/22 17:58:04 UTC

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(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: tapestry-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-user-help@jakarta.apache.org