空间无限

身是菩提树,心如明镜台,时时勤拂拭,勿使染尘埃。 菩提本无树,明镜亦非台,本来无一物,何处惹尘埃。
posts - 5, comments - 15, trackbacks - 0, articles - 8
   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理
林信良版Spring技术手册第6章,在Spring中整合Hibernate,遇到如下错误:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
 at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:127)
 at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:159)
 at org.springframework.context.support.AbstractRefreshableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:66)
 at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:49)
 at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:79)
 at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:67)
 at org.springframework.context.support.FileSystemXmlApplicationContext.<init>(FileSystemXmlApplicationContext.java:58)
 at onlyfun.caterpillar.SpringHibernateDemo.main(SpringHibernateDemo.java:10)

相关环境:
Spring 1.2
Hibernate3
Eclipse 3.1
MyEclipse 3.9

代码,配置环境都是按照书上的,commons-longing.jar已经加入类库中,log4j.properties文件也已经考进去,并且同样的代码在更高的Eclipse和myeclipse中能够顺利运行。网上相关的解决方案都是说commons-longing.jar包没加,有一位也提到编辑环境的关系,但是却没有给出相应的解决方案。

希望大家经过门口的时候多多帮忙,在此留下你的足迹,谢谢!

评论

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2007-04-16 03:13 by javabright
在rcp应用程序中引用外部jar后产生的NoClassDefFoundError的解决
在开始利用eclispe自动生成rcp应用程序后,在eclipse的插件平台下,没有导入相关的jar包,程序运行正常,但是当导入了相关jar包后,比如,在程序中利用到了common的相关包,利用了spring,hibernate等相关的包,建立构建路径后,在整个工程中没有发现异常,各类也没有显示错误信息,但运行系统程序时,却提示下列异常:
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
即使是我们在程序中不引用LogFactory 类的包,也会弹出其他类的NoClassDefFoundError异常,什么原因导致了这个现象呢(在工程中显示导入文件jar包无误,发现构建路径也无误)?
原来,在构建rcp应用程序时,针对lib文件夹的添加,插件清单需要修改,在插件清单中需要添加对应的jar包的路径:用默认的plug-in manifese editor打开plugin.xml文件,选择Runtime,我们需要在ClassPath一项里做相应的修改:在插件清单中添加我们用到的外部jar包。如果不指定,我们定义的类信息和其他的资源信息就不能添加到插件应用程序中去了,则会提示ClassNotFoundException。
重新运行程序,果然正常了。
将rcp应用程序导出时也需要注意:我们也同样需要将我们自己写的代码添加runtime的classpath中,我提供的方法是:选择右边的add按钮,添加bin目录(class文件所在的目录),有人添加的是jar,有的人提供的是一个点(即:.)。添加完后,导出,就发现应用程序能够正常地运行了,否则,又会发现ClassNotFoundException(这次提示的是我们自己编写的代码找不到了)



这是我找到得关于这个问题的其中一个解决方案,因为跟其他解决方案比较不同,而且讲得比较有道理,就记了下来,以供大家参考。因为不懂如何修改pulg-in.xml文件,因此还在实验中。希望各位同仁多多指教。

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2007-04-16 16:33 by javabright
放弃了,装eclipse3.2去

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2007-04-16 20:50 by ant
留个联系方式,我发给你,我也跑了,可以的。

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2007-04-21 22:25 by javabright
@ant
谢谢你的留言,请把你的发到jx1984520@163.com,如果能够贴出来,那请贴到我的博客上,这样有更多的人可以看到。

关于我遇到的问题,我已经在eclipse3.2中顺利跑起来了。我导师说这种错误提示一方面是确实缺少了commons-longing.jar包,但也有可能是因为commons-longing.jar包,我认为这种可能性也是存在的,因为利用eclipse自动加的包确实可能重复,不过我还没做过实验,希望遇到同意问题的同学可以去试试,并能把结果发上来。

最后,再次谢谢楼上的留言。

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2007-04-24 17:40 by ant
@javabright
已经发你邮箱了,注意查收,好运!

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2007-05-09 14:25 by yaojing
我也是今年大四毕业生,技术手册这书好吗? 我看的是spring in action,觉上面的例子不能实际跑。我做的是web应用-spring应用与研究

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2007-05-14 12:59 by 本人《懒得登陆》
你好,《spring in action》这本书挺有名的,很想去买一本,可惜口袋里没钱。
技术手册这本书写得很基础,代码很多我都试过,可以用的,对于spring入门来说是一本很好的书,但对于已经入门的人来说,可能用处不大,你可以先从网上下一本看看。

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2007-05-14 13:26 by zyx
终于找到了问题解决办法,thank you

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2008-03-09 16:39 by youcai
我也在林信良版Spring技术手册的第九章的RMI代码运行中遇到:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.springframework.util.ClassUtils.<clinit>(ClassUtils.java:73)
at org.springframework.core.io.DefaultResourceLoader.<init>(DefaultResourceLoader.java:52)
at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:198)
at org.springframework.context.support.AbstractRefreshableApplicationContext.<init>(AbstractRefreshableApplicationContext.java:80)
at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:58)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:119)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:66)
at onlyfun.caterpillar.RMIServer.main(RMIServer.java:15)
已经用过很多方法了,还是不行,恳请高手帮忙,谢谢。
我的邮箱:youcai1984333@163.com
希望高手把解决方法发到我的邮箱,万分感激。
我的QQ:404391476,也可以与我联系。

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2008-08-17 14:09 by aiyunlei
加上一条:import org.apache.logging.LogFactory;应该就好了

# re: 林信良版Spring技术手册遇到的问题(SpringHibernateDemo)  回复  更多评论   

2008-08-17 14:09 by aiyunlei
加上一条:import org.apache.logging.LogFactory;应该就好了

只有注册用户登录后才能发表评论。


网站导航: