论坛首页 Java企业应用论坛

如果在Tapestry中使用抽象类,会得到 java.lang.Cla...

浏览 3828 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-07-03  
我用tapestry3.0 做一个简单的测试,Server: Tomcat5.16. JDK1.4
点击一个连接后就会报错:
java.lang.ClassCastException


我的代码:
public abstract class Hello extends BasePage{
	int counter;
	public void doClick();{
		int c=this.getCounter();;
		c++;
		this.setCounter(c);;
	}
	public void setCounter(int counter);;
	public  int getCounter();;
	
}

这是怎麽回事,有人遇到过么?
   发表时间:2005-07-03  
完整Exception:

An exception has occurred. 
You may continue by restarting the session. 

java.lang.ClassCastException 
 
Stack Trace: 
org.apache.tapestry.link.DirectLink$Enhance_3.getListener(DirectLink$Enhance_3.java); 
org.apache.tapestry.link.DirectLink.trigger(DirectLink.java:114); 
org.apache.tapestry.engine.DirectService.service(DirectService.java:169); 
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:237); 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157); 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214); 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104); 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520); 
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198); 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152); 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104); 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520); 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137); 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104); 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118); 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102); 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520); 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109); 
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104); 
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520); 
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929); 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160); 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799); 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705); 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577); 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684); 
java.lang.Thread.run(Thread.java:534); 
 

0 请登录后投票
   发表时间:2005-07-03  
昏迷,这个多多,你把listener的监听方法用错了,不关什么persistent state或者抽象类的事啦。。。

public void doClick(IRequestCycle cycle);
0 请登录后投票
   发表时间:2005-07-03  
gzdlw 写道
昏迷,这个多多,你把listener的监听方法用错了,不关什么persistent state或者抽象类的事啦。。。

public void doClick(IRequestCycle cycle);


多谢回复,但这个参数似乎不是必需的,看这里:
http://jakarta.apache.org/tapestry/QuickStart/directlink.html
0 请登录后投票
   发表时间:2005-07-03  
照你的方法改了,问题依旧!
0 请登录后投票
   发表时间:2005-07-03  
刚才一运行又可以了,有点莫名其妙
0 请登录后投票
   发表时间:2005-07-03  
在Tapestry4.0里面,监听方法才可以不带IRequestCycle参数,但是我看你不是说用的是Tapestry3.0吗?

引用
我用tapestry3.0 做一个简单的测试,Server: Tomcat5.16. JDK1.4
0 请登录后投票
   发表时间:2005-07-05  
gzdlw 写道
在Tapestry4.0里面,监听方法才可以不带IRequestCycle参数,但是我看你不是说用的是Tapestry3.0吗?

引用
我用tapestry3.0 做一个简单的测试,Server: Tomcat5.16. JDK1.4


是这样,这点我没注意. 但是3.0没有这样的Quick Start,但是 4。0中的 "update from 3.0"中又没有说明这个变化  :(
0 请登录后投票
   发表时间:2005-07-20  
其实基本的数据类型,当页面render的时候,在tp3中,我发现转化成了Object类型。例如int--->Integer,float-->Float等等,当触发listener的时候,又转化成基本数据类型,所以第1次一般不会有问题,但是当你再次render同一个page的时候,这时候页面就出问题了...我觉得为了避免这些奇怪的东西出现,property如果是基本类型的话就设置成String类型,在后台进行类型转化。我想你这个问题可能是这个原因吧。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics