java.lang.IllegalAccessError 同时使用 spring 批处理获取执行列表
java.lang.IllegalAccessError while using spring batch to get the list of executions
我在尝试 运行 spring 批处理加载执行列表时遇到此错误。
java.lang.IllegalAccessError: tried to access method
org.springframework.batch.core.repository.dao.JdbcJobExecutionDao.getJobParameters(Ljava/lang/Long;)Lorg/springframework/batch/core/JobParameters;
from class
org.springframework.batch.admin.service.JdbcSearchableJobExecutionDao
经过一些分析,我发现 JdbcJobExecutionDao 是 Spring-batch 的一部分,并且将 getJobParameters() 的实现作为受保护的方法,而 JdbcSearchableJobExecutionDao 是 spring-batch-admin 的一部分它扩展了 JdbcJobExecutionDao。
所以根据 Oracle 文档,它说 IllegalAccessError 是 -
Thrown if an application attempts to access or modify a field or to
call a method that it does not have access to.
Normally, this error is caught by the compiler; this error can only
occur at run time if the definition of a class has incompatibly
changed.
我不明白,我无法控制这些jars/classes。我在使用它们时做错了什么吗?还是我对这两个罐子使用的版本有问题。
spring-批处理 - 版本 2.2.0.RELEASE
spring-batch-admin - 版本 1.3.0.BUILD-SNAPSHOT(也尝试使用 1.3.0.RELEASE)
引用网站 -
java.lang.IllegalAccessError: tried to access method
所以,我通过使用正确的版本修复了这个问题。这是 spring-batch 和 spring-batch-admin 之间的版本不匹配问题。我参考了这个 spring 文档站点并尝试了推荐的版本并且成功了!
http://docs.spring.io/spring-batch-admin/spring-batch-admin-manager/dependencies.html
所以,现在我正在使用
2.2.7.RELEASE(Spring-Batch)
和
1.3.1.RELEASE(Spring-Batch-Admin)
我再也收不到 java.lang.IllegalAccessError
了。需要检查是否有任何其他功能受到干扰,因为这是一个非常古老的项目。
希望这对面临类似问题的人有所帮助。
我在尝试 运行 spring 批处理加载执行列表时遇到此错误。
java.lang.IllegalAccessError: tried to access method org.springframework.batch.core.repository.dao.JdbcJobExecutionDao.getJobParameters(Ljava/lang/Long;)Lorg/springframework/batch/core/JobParameters; from class org.springframework.batch.admin.service.JdbcSearchableJobExecutionDao
经过一些分析,我发现 JdbcJobExecutionDao 是 Spring-batch 的一部分,并且将 getJobParameters() 的实现作为受保护的方法,而 JdbcSearchableJobExecutionDao 是 spring-batch-admin 的一部分它扩展了 JdbcJobExecutionDao。
所以根据 Oracle 文档,它说 IllegalAccessError 是 -
Thrown if an application attempts to access or modify a field or to call a method that it does not have access to.
Normally, this error is caught by the compiler; this error can only occur at run time if the definition of a class has incompatibly changed.
我不明白,我无法控制这些jars/classes。我在使用它们时做错了什么吗?还是我对这两个罐子使用的版本有问题。
spring-批处理 - 版本 2.2.0.RELEASE
spring-batch-admin - 版本 1.3.0.BUILD-SNAPSHOT(也尝试使用 1.3.0.RELEASE)
引用网站 - java.lang.IllegalAccessError: tried to access method
所以,我通过使用正确的版本修复了这个问题。这是 spring-batch 和 spring-batch-admin 之间的版本不匹配问题。我参考了这个 spring 文档站点并尝试了推荐的版本并且成功了!
http://docs.spring.io/spring-batch-admin/spring-batch-admin-manager/dependencies.html
所以,现在我正在使用
2.2.7.RELEASE(Spring-Batch)
和
1.3.1.RELEASE(Spring-Batch-Admin)
我再也收不到 java.lang.IllegalAccessError
了。需要检查是否有任何其他功能受到干扰,因为这是一个非常古老的项目。
希望这对面临类似问题的人有所帮助。