我正在执行简单的spring依赖注入程序&得到这个异常。 我已经包含了common-logging1.1.1.jar和spring.jar文件。你能帮我一下吗?

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:119)
    at org.springframework.context.support.AbstractXmlApplicationContext.<init>(AbstractXmlApplicationContext.java:55)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:77)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:65)
    at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:56)
    at com.client.StoryReader.main(StoryReader.java:15)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClassInternal(Unknown Source)
    ... 6 more

当前回答

至少有两种选择:

将common -logging jar文件复制到本地文件夹中,添加到您的文件中。

注意:链接jar可能会导致服务器出现问题,这可能是将它添加到构建路径但不能解决服务器启动问题的原因。

所以不要把罐子指向外部文件夹。

还是……

如果您真的不想在本地添加它,因为您在项目之间共享jar,那么……

如果您正在使用tc服务器实例,那么您需要将jar作为外部jar添加到服务器实例运行配置中。

去运行as,运行配置…,{你的tc服务器实例},然后是类路径选项卡。

然后添加common -logging jar。

其他回答

如果你在Android上运行这个,那么注意显然是java。在Android上beans包不完整。尝试在Android上修复它,请尝试以下方法:

下载android-java-air-bridge.jar(目前下载按钮在页面底部或直接链接这里) 将下载的jar复制到你的[APPROOT]/app/libs目录(或以任何其他方式链接jar) 将import ***语句更改为air-bridge语句。例如导入javadz.beanutils.BeanUtils而不是导入org.apache.commons.beanutils.BeanUtils; 清理并重新构建项目

源1源2

我很抱歉,因为我意识到这并没有完全回答这个问题,尽管这个SO页面在搜索android生成的NoClassDefFoundError:失败的:beanUtils错误决议时出现了很多。

我已经包括common-logging1.1.1.jar和…

您确定JAR文件的名称拼写正确吗?我认为它可能应该是common -logging-1.1.1.jar(注意名称中的额外-)。还要检查目录名称是否正确。

NoClassDefFoundError总是表示找不到类,所以很可能您的类路径不正确。

我遇到了同样的问题,只需将commons-logging.jar添加到类路径中就解决了这个问题。

检查jar是否正确导入。我使用构建路径导入它们。但是它没有识别WAR/lib文件夹中的jar。后来,我复制了同一个jar到war/lib文件夹。现在可以正常工作了。您可以刷新/清理您的项目。

嘿,我在tutorialpoint.com上看教程。完成第2步后添加—安装Apache Common Logging API:你必须从这一步下载的文件中导入外部jar库到项目中。对我来说,这个文件的名称是“commons-logging-1.1.1”。