小编Abd*_*lah的帖子

为什么我的 Quartz 触发器在重新启动 Spring boot 应用程序时没有更新更改的 Cron 表达式?

我在 Spring Boot 应用程序中创建了一个 Cron 计划触发器,如下所示,它被完美地触发。问题是,当我更改下面代码中的 Cron 计划表达式并重新启动 Spring Boot 应用程序时,Cron 计划触发器没有更新,并且仍然触发旧的 Cron 计划表达式值。

在检查数据库表时,我发现表 qrtz_cron_triggers 中的记录没有更新。

qrtz_cron_triggers表中的记录是

“quartzScheduler”“Qrtz_NEReportProcessor_Job_Trigger”“默认”“0 30 22?* *”“亚洲/加尔各答”

如何确保在重新启动我的 Spring Boot 应用程序时, cron 计划表达式值得到更新?我的代码如下。

    @Bean(name = "nRJobDetail")
    public JobDetail nRJobDetail() {
        return newJob().ofType(NEReportJob.class).storeDurably().withIdentity(JobKey.jobKey("Qrtz_NEReportProcessor_Job_Detail")).withDescription("Invoke NEReportProcessor Job service...").build();
    }

    @Bean
    public Trigger nRTrigger(@Qualifier("nRJobDetail") JobDetail job) {
        return newTrigger().forJob(job).withIdentity(TriggerKey.triggerKey("Qrtz_NEReportProcessor_Job_Trigger")).withDescription("NEReportProcessor trigger")
                .withSchedule(CronScheduleBuilder.cronSchedule("0 00 23 ? * *")
                )
                .build();
    }
Run Code Online (Sandbox Code Playgroud)

java cron quartz-scheduler spring-boot

5
推荐指数
1
解决办法
4392
查看次数

升级到 Gradle 5.0 后,Lombok 导致 MapStructcompileJava 构建失败

我们正在尝试从 Gradle 4.5 升级到 5.0。升级后,compileJava 失败,因为 Mapstruct 无法解析 @Mapping 注释中使用的值(getters 显然不可用)。这在 Gradle 4.5 中运行良好。

代码是这样的

@Mapper(componentModel = "spring")
public interface CAndACodeGenConverter extends BaseConverter<CGen, AGen> {

    @Mapping(target = "owner", source = "owner.name")
    @Mapping(target = "useCA", source = "defaultCA")
    AGen convertToDto(CGen entity);
}
Run Code Online (Sandbox Code Playgroud)

我们的build.gradle是这样的

    mapstructVersion = "1.4.1.Final"
    lombokVersion = "1.18.12"
    lombokMapstructBindingVersion = "0.2.0"

    compileOnly('org.projectlombok:lombok:1.18.12')
    compile("org.mapstruct:mapstruct:${mapstructVersion}")
    implementation "org.mapstruct:mapstruct:${mapstructVersion}", "org.projectlombok:lombok:${lombokVersion}"
    annotationProcessor "org.mapstruct:mapstruct-processor:${mapstructVersion}", "org.projectlombok:lombok-mapstruct-binding:${lombokMapstructBindingVersion}"
 
Run Code Online (Sandbox Code Playgroud)

我们得到的错误是

error: No property named "owner.name" exists in source parameter(s). Did you mean "null"?
Run Code Online (Sandbox Code Playgroud)

这在 Gradle 4.5 中运行良好。

java gradle lombok spring-boot mapstruct

4
推荐指数
1
解决办法
3035
查看次数

JasperReports 的 Gradle 构建失败:依赖问题

我的 build.gradle 如下:

// https://mvnrepository.com/artifact/net.sf.jasperreports/jasperreports
compile group: 'net.sf.jasperreports', name: 'jasperreports', version: '6.9.0'
// https://mvnrepository.com/artifact/com.lowagie/itext
compile group: 'com.lowagie', name: 'itext', version: '2.1.7.js6'

repositories {
maven {
    url 'https://repo.spring.io/libs-milestone'
}
 maven {
    url 'http://maven.icm.edu.pl/artifactory/repo/'
}
Run Code Online (Sandbox Code Playgroud)

我得到的错误如下。

FAILURE:构建失败,出现异常。

  • 出了什么问题:无法解析配置“:Services:compileClasspath”的所有文件。

    找不到 com.lowagie:itext:2.1.7.js6。需要:项目:服务项目:服务> net.sf.jasperreports:jasperreports:6.9.0

参考链接:https : //mvnrepository.com/artifact/com.lowagie/itext/2.1.7.js6

这里出了什么问题?请帮忙。

jasper-reports itext gradle

1
推荐指数
1
解决办法
1718
查看次数