现象是报Bad version number in .class file的错误
实际出错是在service的一行转json的代码后面Catch JSONException的地方
由于没有提示出错的代码行,只能通过二分法在spring配置文件中逐步定位service类
然后再二分法定位报错的方法,折腾2小时。
原因最后查明:
本地的maven lib库里json-1.0.jar 有两个版本,1.0是jdk5编译的,20090211是1.6编译的;
之前的负责架构的在将ant迁到maven时,用20090211 替换了1.0,后来使用发现了问题。
项目建了三个maven module project。A+B+C,B和C是两个模块,当初更正了A的pom,但没有改BC的pom,因为BC没有用到转json,因此一直没有出问题。
A中的转json都是在action中,这次出错时是因为有人将转json写在service中。检查junit的运行环境,发现含有包20090211,估计是从BC关联引用的。
修改B、C的pom将json版本改为1.0,再检查junit的运行的source里面已经没有20090211的包。再运行,不再报版本不一致的错误。
教训:检查问题时,在A中,点JSONException,指向的是1.0版本jar包,此时未检查junit的运行参数。
分享到:
相关推荐
3. **Maven或Gradle构建问题**:如果你使用的是Maven或Gradle这样的构建工具,确保在pom.xml或build.gradle文件中添加了正确的依赖。对于Maven,可能需要添加如下的依赖: ```xml <groupId>javax.xml.ws ...
<groupId>org.apache.maven.plugins <artifactId>maven-shade-plugin <version>3.1.0</version> <phase>package <goal>shade implementation="org.apache.maven.plugins.shade.resource....
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。在给定的标题"apache-maven-3.6.1-bin.tar.gz"中,我们可以看出这是Maven的一个发行版本,版本号为3.6.1,且以tar.gz格式打包,这通常是...
Apache Maven 是一个强大的Java项目管理工具,它基于项目对象模型(Project Object Model,POM)的概念,能够自动化构建、依赖管理和项目信息管理。Maven 3.5.4是Maven的一个稳定版本,包含了多项改进和修复,为...
1. **检查构建工具配置**:如果你使用的是Maven或Gradle作为构建工具,确保在`pom.xml`或`build.gradle`文件中包含了`io.swagger`的相关依赖。如果没有,你需要手动添加。例如,对于Maven,可以在`pom.xml`中添加...
org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration) 解决方案: 第一种方式 war项目 <groupId>org.apache....
Apache Maven 是一个强大的Java项目管理工具,它基于项目对象模型(Project Object Model,POM)的概念,用于构建、管理和依赖关系解决。`apache-maven-3.8.4-bin.tar.gz` 是Apache Maven 3.8.4版本的二进制发行版的...
`ojdbc报错所需的资源包`可能是指在使用Oracle JDBC驱动时遇到的问题,这些问题可能由以下原因引起: 1. **驱动版本不匹配**:如前所述,JDBC驱动需要与JDK版本兼容。 2. **类路径问题**:确保`ojdbc-all.jar`或者`...
maven-jar-plugin-3.1.1.jar
在使用Eclipse进行Java开发时,Maven是一个不可或缺的工具,它通过POM(Project Object Model)文件来管理项目的构建、依赖和文档。然而,在实际操作中,有时会在导入Maven项目时遇到pom.xml报错的问题。这个问题...
maven-aether-provider-3.2.1-sources.jar maven-antrun-plugin-1.3.jar maven-archiver-2.2.jar maven-artifact-3.2.1-sources.jar maven-assembly-plugin-2.2-beta-5.jar maven-bundle-plugin-1.0.0.jar maven-...
配置完成后,可以通过运行`mvn -version`命令检查Maven是否已正确安装并配置。一旦Maven准备就绪,开发者就可以利用它来创建项目(`mvn archetype:create`),编译源代码(`mvn compile`),运行测试(`mvn test`)...
java: 读取D:\Develop\maven\repository\org\aspectj\aspectjweaver\1.9.6\aspectjweaver-1.9.6.jar时出错; error in opening zip file 提示jar出问题,找到此处,删除重新下载,但是jar依旧是损坏状态
如果你使用的是Maven或Gradle,可以检查`pom.xml`或`build.gradle`文件,确保对应的依赖条目存在并且版本正确。对于Maven,可能需要添加如下依赖: ```xml <groupId>cglib <artifactId>cglib <version>3.2.5</...
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project
在使用这个替换包之前,确保备份原有的jar文件,并按照项目依赖管理的规则正确引入新包,例如通过Maven或Gradle等构建工具。 对于遇到这类问题的开发者,理解TCL和Jacl的基本概念、熟悉Java的类加载机制以及如何...
<groupId>org.apache.maven.plugins <artifactId>maven-resources-plugin <version>2.4.3</version> ``` 这段代码指定了`maven-resources-plugin`插件的版本为2.4.3。如果在构建过程中出现了与该插件相关的错误...
【标题】:“maven3搭建的spring邮件项目” 在IT领域,开发人员经常需要与用户进行交互,其中发送电子邮件是一种常见的通信方式。本项目利用Maven3构建了一个基于Spring框架的邮件服务,允许开发者轻松地集成邮件...
2. **创建项目**:在命令行中,使用`mvn archetype:generate`命令,并指定对应的archetype id,如`maven-archetype-webapp`,然后按照提示输入项目信息,如groupId、artifactId和version。 3. **编译与运行**:生成...
Maven 使用一种标准化的项目对象模型(Project Object Model,POM),通过依赖管理和项目生命周期的概念,帮助开发者自动化构建过程。"apache-maven-3.2.3-bin.tar.gz" 是Apache Maven 3.2.3版本的二进制发行包,以...