spring struts2 Hibernate整合应用中遇到的问题,十分纳闷
自己写的一个新闻管理系统,刚刚做完栏目管理,用的mysql数据库,tomcat服务器。却发现只能在自己机器的tomcat上运行,到别人机器上总是在tomcat启动时报异常,在网上查了好久,网上也有遇到这个异常的,不过他们提供的方案都不能解决我这的问题啊,
各位大侠可以帮小弟看下问题出在哪里。part1 和part2是jar包,解压后放入工程lib下,newsSys是工程,news_sys是数据库导出的表结构,mysql数据库用的root用户登录,密码123456,如果不相同的可以再web-inf目录下改下spring配置文件applicationContext.xml,一定是要改web-inf下的,因为根目录下页有一个事测试用的。
在别人机器上tomcat启动时出的异常报出的异常如下:
2009-9-10 9:31:59 org.apache.catalina.core.ApplicationContext log
ÐÅÏ¢: Initializing Spring root WebApplicationContext
2009-9-10 9:32:01 org.apache.catalina.core.StandardContext listenerStart
ÑÏÖØ: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
java.lang.NoSuchMethodError: org.springframework.beans.factory.config.ConfigurableListableBeanFactory.registerResolvableDependency(Ljava/lang/Class;Ljava/lang/Object;)V
at org.springframework.web.context.support.AbstractRefreshableWebApplicationContext.postProcessBeanFactory(AbstractRefreshableWebApplicationContext.java:140)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:331)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3827)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4334)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:920)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:883)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1138)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2009-9-10 9:32:01 org.apache.catalina.core.StandardContext start
ÑÏÖØ: Error listenerStart
2009-9-10 9:32:01 org.apache.catalina.core.StandardContext start
ÑÏÖØ: Context [/popedom] startup failed due to previous errors
2009-9-10 9:32:01 org.apache.catalina.core.ApplicationContext log
[b]问题补充:[/b]
我们机器都用的jdk1.6啊
是不是别人机器上的tomcat的common的lib里有其他版本的spring的jar?
可以考虑 在别人 机器上别的目录下,装一个新的tomcat,单独放你的项目。
这样测试下。
如果单独是好的,就可能是你朋友机器上的旧的tomcat里jar冲突了。
如果还不好,再考虑其他方向。
BTW newsSys.war下载下来看了,有好几个重复的jar
log4j-1.2.14.jar / log4j-1.2.11.jar
commons-logging.jar / commons-logging-1.0.4.jar
[quote]却发现只能在自己机器的tomcat上运行,到别人机器上总是在tomcat启动时报异常[/quote]
JDK是否一样呢?
[quote]
java.lang.NoSuchMethodError: org.springframework.beans.factory.config.ConfigurableListableBeanFactory.registerResolvableDependency(Ljava/lang/Class;Ljava/lang/Object;)V
[/quote]
估计是别人的机子是JDK1.4,换下1.5的看看。
log4j-1.2.14.jar / log4j-1.2.11.jar
commons-logging.jar / commons-logging-1.0.4.jar
cglib-2.1.3.jar/cglib-2.1.2.jar
把重复的jar包删了,再试试。
错误原因:spring-beans.jar是2.0版本的。spring.jar是2.0和2.5版本的合集。
ConfigurableListableBeanFactory.registerResolvableDependency()方法在spring-bean.jar内没有,在Spring.jar内有。
解决办法:删掉spring-beans.jar即可。
spring.jar简介 http://michero.iteye.com/blog/918781