springmvc json java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntim

本文记录了在SpringMVC中整合JSON时遇到的一系列问题及解决方案,包括因缺失jar包导致的ClassNotFound异常,并提供了正确的依赖包列表。

今天研究了哈springmvc里面加json,一直报错,总结了下是确实jar的原因

java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException


如下ajax需要的jar可以去我资源里面下

http://download.csdn.net/detail/yangyz_love/

遇到这种问题是因为jar包不全,应该包含

commons-beanutils-1.8.3.jar 
commons-lang-2.5.jar 
ezmorph-1.0.6.jar 
json-lib-2.3-jdk15.jar

 

但是又出现如下问题:

java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory

 

导入commons-logging-1.1.1.jar

 

又出现如下问题:

java.lang.NoClassDefFoundError: Could not initialize class net.sf.json.JSONArray

 

导入commons-collections 3.2

 

 

OK



使用json常用到的包有以下六个。

[c-sharp]  view plain copy
  1. commons-logging-1.0.4.jar  
  2. commons-lang-2.3.jar  
  3. commons-collections-3.2.jar  
  4. commons-beanutils-1.7.0.jar  
  5. json-lib-2.2.1-jdk15.jar  
  6. ezmorph-1.0.4.jar  
 

另外如果commons-collections-3.2.jar没有或版本不对的话会出现

org/apache/commons/collections/map/ListOrderedMap这个异常。






### SpringMVC 中 `java.lang.ClassNotFoundException` 的解决方案 在开发基于 SpringMVC 的应用程序时,如果遇到 `java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver` 错误,通常是因为缺少必要的 MySQL 驱动程序或其配置不正确。以下是可能的原因及其对应的解决方法: #### 1. **确认 MySQL Connector/J 是否已正确引入** 确保项目的依赖管理工具(如 Maven 或 Gradle)已经成功引入了适合版本的 MySQL 驱动程序。对于 MySQL 8.0 及更高版本,推荐使用的驱动类名为 `com.mysql.cj.jdbc.Driver`。 如果是 Maven 项目,请检查 `pom.xml` 文件中的依赖项是否如下所示: ```xml <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.x</version> <!-- 替换为最新稳定版 --> </dependency> ``` 如果没有正确引入,则可能导致运行时无法找到该类文件[^3]。 #### 2. **验证构建路径设置** 当手动下载并放置 MySQL 驱动 JAR 包到项目目录中时,需确保将其添加至项目的构建路径(Build Path)。未完成此操作可能会引发上述异常[^2]。 #### 3. **调整 JDBC URL 和驱动加载方式** 自 MySQL 8.0 起,默认情况下无需显式注册驱动器实例即可建立数据库连接。然而,在某些旧代码实现中仍保留了通过反射机制调用 `Class.forName()` 来初始化驱动的方式。此时应更新相关代码片段以匹配新标准。例如: ```java // 原始写法 (适用于较早版本) Class.forName("com.mysql.jdbc.Driver"); // 新写法 (针对 MySQL 8+ 不再强制要求) String jdbcUrl = "jdbc:mysql://localhost:3306/your_database?serverTimezone=UTC"; Connection connection = DriverManager.getConnection(jdbcUrl, username, password); ``` 注意:即使省略了 `Class.forName(...)` 方法调用,也必须保证驱动已被加载入 JVM 类路径之中[^1]。 #### 4. **排查容器环境下的资源隔离问题** 假如应用部署于 Tomcat 等 Servlet 容器之上,还需留意服务器自身的 ClassLoader 行为是否会干扰外部库的正常解析过程。一般建议将第三方依赖存放到 `$TOMCAT_HOME/lib` 下全局共享区域或者随 WAR 打包上传[^4]。 --- ### 总结 综上所述,要彻底消除此类错误现象可以从以下几个方面入手核查修正: - 明确指定兼容目标 DBMS 版本号的客户端适配器; - 正确维护工程结构内的所有必要组件链接关系; - 合理设计源码逻辑适应现代化 API 使用习惯; - 结合实际应用场景考虑潜在冲突因素的影响范围。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值