关于struts+jdon+hibernate demo的问题,谢谢!急!

05-09-17 forgetdavi
测试环境:tomcat5.0+eclipse3.1+myeclipse4.0GE+ms sqlserver2000
JNDI测试通过。

表中有5条记录
访问http://127.0.0.1:8080/jdon/userListAction.do?count=5
列表页面显示正常,但是没有显示表中的5条记录。

查看log:在UserListAction的findModelByKey中抛出5条“java.lang.reflect.UndeclaredThrowableException”

英雄!帮帮忙吧~~
下周一之前必须把这个demo跑出来,要不然就麻烦了 :(

banq
2005-09-17 09:10
好 我尽量在线支持你
java.lang.reflect.UndeclaredThrowableException
这个错只是由于根本错误导致的结果错误,
你要寻找第一个Error 贴出来。

forgetdavi
2005-09-17 14:48
访问的时候,只能看到“java.lang.reflect.UndeclaredThrowableException”一个错误

我把eclipse的工程文件传上来,帮我看看吧 :(
下载:eclipse工程文件

banq
2005-09-18 10:39
工程没什么问题啊,你运行相关的文件给,如服务器Tomcat/JBoss的log文件;以及你的部署方式,如果是采取打包,将war给我看看。这样比较一目了然。

forgetdavi
2005-09-18 10:45
谢谢banq老师,
我现在就打包给您看看,
不知道banq老师是否方便加我qq或者msn
我的qq是1184282

forgetdavi
2005-09-18 10:48
jdon.war地址:jdon.war

banq
2005-09-18 11:21
最重要的是服务器Tomcat/JBoss的log文件;打开它,找到第一个ERROR处,你也可以上传。

banq
2005-09-18 11:23
从打包来看,要将struts包和hibernate包拷贝到服务器的目录下,而不是打包在这个项目中,包括Jdon框架驱动包,这个已经在Jdon框架开发指南里关于安装一节说明了,也在这个软件包里附带说明了。

forgetdavi
2005-09-18 11:26
所有的包文件 我都copy到Tomcat 5.0\common\lib下了
log文件中只能看到
log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.TldConfig).
log4j:WARN Please initialize the log4j system properly.
错误A:java.lang.reflect.UndeclaredThrowableException
错误A:java.lang.reflect.UndeclaredThrowableException
错误A:java.lang.reflect.UndeclaredThrowableException
错误A:java.lang.reflect.UndeclaredThrowableException
错误A:java.lang.reflect.UndeclaredThrowableException
错误A:java.lang.reflect.UndeclaredThrowableException
错误A:java.lang.reflect.UndeclaredThrowableException
错误A:java.lang.reflect.UndeclaredThrowableException
错误A:java.lang.reflect.UndeclaredThrowableException
错误A:java.lang.reflect.UndeclaredThrowableException

forgetdavi
2005-09-18 11:42
Tomcat 5.0\logs下有4个log文件

[点击查看]

stderr.log

stdout.log

localhost_log.2005-09-18.txt

localhost_DBTest_log.2005-09-18.txt

forgetdavi
2005-09-18 16:18
以上的文件连接请改为:60.166.37.54

11:53:17,356 INFO Environment:483 - Hibernate 2.1.8
11:53:17,371 INFO Environment:512 - hibernate.properties not found
11:53:17,371 INFO Environment:543 - using CGLIB reflection optimizer
11:53:17,371 INFO Environment:572 - using JDK 1.4 java.sql.Timestamp handling
11:53:17,371 INFO Configuration:909 - configuring from resource: /hibernate.cfg.xml
11:53:17,371 INFO Configuration:881 - Configuration resource: /hibernate.cfg.xml
11:53:17,528 INFO Configuration:332 - Mapping resource: userinfo_hbm.xml
11:53:17,637 INFO Binder:229 - Mapping class: com.jdon.framework.test.model.UserTest -> testuser
11:53:17,715 INFO Configuration:1067 - Configured SessionFactory: null
11:53:17,731 INFO Configuration:641 - processing one-to-many association mappings
11:53:17,731 INFO Configuration:650 - processing one-to-one association property references
11:53:17,731 INFO Configuration:675 - processing foreign key constraints
11:53:17,762 INFO Dialect:86 - Using dialect: net.sf.hibernate.dialect.MySQLDialect
11:53:17,778 INFO SettingsFactory:70 - Maximim outer join fetch depth: 2
11:53:17,778 INFO SettingsFactory:74 - Use outer join fetching: true
11:53:17,778 WARN UserSuppliedConnectionProvider:25 - No connection properties specified - the user must supply JDBC connections
11:53:17,793 INFO TransactionManagerLookupFactory:33 - No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)
11:53:17,793 INFO SettingsFactory:114 - Use scrollable result sets: false
11:53:17,793 INFO SettingsFactory:117 - Use JDBC3 getGeneratedKeys(): false
11:53:17,809 INFO SettingsFactory:120 - Optimize cache for minimal puts: false
11:53:17,809 INFO SettingsFactory:126 - echoing all SQL to stdout
11:53:17,809 INFO SettingsFactory:129 - Query language substitutions: {}
11:53:17,809 INFO SettingsFactory:140 - cache provider: net.sf.hibernate.cache.EhCacheProvider
11:53:17,809 INFO Configuration:1130 - instantiating and configuring caches
11:53:17,856 WARN Configurator:123 - No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: file:/E:/Work Files/eclipse/Tomcat 5.0/work/Catalina/localhost/jdon/loader/ehcache-failsafe.xml
11:53:17,996 INFO SessionFactoryImpl:119 - building session factory
11:53:18,403 INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured
错误A:java.lang.reflect.UndeclaredThrowableException
11:53:18,590 WARN root:206 - com.jdon.strutsutil.ModelListAction
java.lang.Exception: the model Id=(1) maybe be deleted!
at com.jdon.strutsutil.ModelListAction.fetchModel(ModelListAction.java:204)
at com.jdon.strutsutil.ModelListAction.getModelList(ModelListAction.java:144)
at com.jdon.strutsutil.ModelListAction.execute(ModelListAction.java:85)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at com.jdon.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:92)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:195)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:805)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
at java.lang.Thread.run(Unknown Source)
错误A:java.lang.reflect.UndeclaredThrowableException
11:53:18,621 WARN root:206 - com.jdon.strutsutil.ModelListAction
java.lang.Exception: the model Id=(2) maybe be deleted!
at com.jdon.strutsutil.ModelListAction.fetchModel(ModelListAction.java:204)
at com.jdon.strutsutil.ModelListAction.getModelList(ModelListAction.java:144)
at com.jdon.strutsutil.ModelListAction.execute(ModelListAction.java:85)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at com.jdon.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:92)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:195)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:805)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
at java.lang.Thread.run(Unknown Source)
错误A:java.lang.reflect.UndeclaredThrowableException
11:53:18,653 WARN root:206 - com.jdon.strutsutil.ModelListAction
java.lang.Exception: the model Id=(3) maybe be deleted!
at com.jdon.strutsutil.ModelListAction.fetchModel(ModelListAction.java:204)
at com.jdon.strutsutil.ModelListAction.getModelList(ModelListAction.java:144)
at com.jdon.strutsutil.ModelListAction.execute(ModelListAction.java:85)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:421)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:226)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:743)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:284)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at com.jdon.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:92)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:233)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:204)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:245)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:199)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:195)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:164)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:564)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:972)
at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:211)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:805)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:696)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:605)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:677)
at java.lang.Thread.run(Unknown Source)

banq
2005-09-18 18:39
很可惜,你的日志文件并没有正常输出Jdon框架的执行情况。

首先你要参考Jdon框架开发指南中如何在Tomcat中安装Jdon框架一章,将lo4j.properties文件修改一下,使之能够输出记录;然后要将这个文件放于Tomcat特殊目录下。

当然如果你要JBoss,就没有这些麻烦事情,说到底Tomcat不是一个标准的J2EE服务器,JBoss里面已经整合了Tomcat.

forgetdavi
2005-09-18 18:52
我的war包在您那里能不能正常运行?
我怀疑可能是jndi的问题,但是在test.jsp中测试jndi是正常的

错误如下:
18:35:33,250 INFO Environment:483 - Hibernate 2.1.8
18:35:33,265 INFO Environment:512 - hibernate.properties not found
18:35:33,296 INFO Environment:543 - using CGLIB reflection optimizer
18:35:33,296 INFO Environment:572 - using JDK 1.4 java.sql.Timestamp handling
18:35:33,312 INFO Configuration:909 - configuring from resource: /hibernate.cfg.xml
18:35:33,312 INFO Configuration:881 - Configuration resource: /hibernate.cfg.xml
18:35:33,531 INFO Configuration:332 - Mapping resource: userinfo_hbm.xml
18:35:33,734 INFO Binder:229 - Mapping class: com.jdon.framework.test.model.UserTest -> testuser
18:35:33,968 INFO Configuration:1067 - Configured SessionFactory: null
18:35:33,984 INFO Configuration:641 - processing one-to-many association mappings
18:35:33,984 INFO Configuration:650 - processing one-to-one association property references
18:35:33,984 INFO Configuration:675 - processing foreign key constraints
18:35:34,046 INFO Dialect:86 - Using dialect: net.sf.hibernate.dialect.MySQLDialect
18:35:34,078 INFO SettingsFactory:70 - Maximim outer join fetch depth: 2
18:35:34,078 INFO SettingsFactory:74 - Use outer join fetching: true
18:35:34,109 WARN UserSuppliedConnectionProvider:25 - No connection properties specified - the user must supply JDBC connections
18:35:34,140 INFO TransactionManagerLookupFactory:33 - No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)
18:35:34,140 INFO SettingsFactory:114 - Use scrollable result sets: false
18:35:34,156 INFO SettingsFactory:117 - Use JDBC3 getGeneratedKeys(): false
18:35:34,156 INFO SettingsFactory:120 - Optimize cache for minimal puts: false
18:35:34,156 INFO SettingsFactory:126 - echoing all SQL to stdout
18:35:34,156 INFO SettingsFactory:129 - Query language substitutions: {}
18:35:34,156 INFO SettingsFactory:140 - cache provider: net.sf.hibernate.cache.EhCacheProvider
18:35:34,171 INFO Configuration:1130 - instantiating and configuring caches
18:35:34,218 WARN Configurator:123 - No configuration found. Configuring ehcache from ehcache-failsafe.xml found in the classpath: file:/C:/Tomcat 5.0/work/Catalina/localhost/jdon/loader/ehcache-failsafe.xml
18:35:34,515 INFO SessionFactoryImpl:119 - building session factory
18:35:35,093 INFO SessionFactoryObjectFactory:82 - Not binding factory to JNDI, no JNDI name configured
18:35:35,500 ERROR UserListAction:47 - 错误A:java.lang.reflect.UndeclaredThrowableException
18:35:35,500 WARN root:206 - com.jdon.strutsutil.ModelListAction
java.lang.Exception: the model Id=(1) maybe be deleted!

banq
2005-09-18 20:28
>我的war包在您那里能不能正常运行?
因为你的war大部分是我原来的程序,用的是我自己配置的JNDI,所以一切正常。

forgetdavi
2005-09-18 22:26
换了jboss后,可以运行了。
估计是我tomcat的jndi没有配置好,但是在jsp中测试通过了,,真是奇怪,,

好在在jboss上行了,多谢banq老师 :)

另外如果需要在Struts+Jdon+Hibernate这个demo上增加功能,
比如另外增加一个uesr2表,实现现有demo相同的CRUD功能
需要做哪些改动呢? 谢谢! :)