我在java项目中加了spring支持,加了quartz-1.6.1.jar包,在使用quartz实现任务调用时的代码如下:

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在java项目中加了spring支持,加了quartz-1.6.1.jar包,在使用quartz实现任务调用时的代码如下:相关的知识,希望对你有一定的参考价值。

第一步:src文件夹下边写了个类:package org.bai.quartz;

public class QuartzJob
public void work()

System.out.println("Quartz的任务调度!!!");



第二是在applicationContext.xml中配置的代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:jee="http://www.springframework.org/schema/jee"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-2.0.xsd">

<!-- 要调用的工作类 -->
<bean id="quartzJob" class="org.bai.quartz.QuartzJob"></bean>
<!-- 定义调用对象和调用对象的方法 -->
<bean id="jobtask" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<!-- 调用的类 -->
<property name="targetObject">
<ref bean="quartzJob"/>
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>work</value>
</property>
</bean>
<!-- 定义触发时间 -->
<bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="jobtask"/>
</property>
<!-- cron表达式 -->
<property name="cronExpression">
<!-- 每隔10秒执行一次-->
<value>0/10 * * * * ?</value>
</property>
</bean>
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="doTime"/>
</list>
</property>
</bean>
</beans>
第三步:开启服务时就会报错:错误的代码是这样的:
Error loading class [org.springframework.scheduling.quartz.CronTriggerBean] for bean with name 'doTime' defined in ServletContext resource [/WEB-INF/classes/applicationContext.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: org/quartz/CronTrigger
补充:在web.xml中也加载了,ContextApplication.xml

java.lang.NoClassDefFoundError: org/quartz/CronTrigger

CronTrigger没有找到,包没有引全吧,需要相关依赖包
参考技术A org.springframework.scheduling.quartz.CronTriggerBean
确认这个是不是存在
exception is java.lang.NoClassDefFoundError: org/quartz/CronTrigger
你看这是什么找不到了
你包没引全

Spring - java http get请求,返回字符串多加了一层引号“

    公司其他项目的同事调用我们模块的一个GET接口时,发现返回的字符串多了一层引号,刚看到这个问题,一脸疑惑,String类型的字符串不就是应该是这样的吗?

String result1= HttpUtil.get("http://localhost:8080/demo-service/v1/api/email/content?id=27");
System.out.println(result1);

输出:"https://demofile.aliyun.com/27.html"

    自己写了一个简单的HTTP Get请求一下,果然是这个样子的,但是我是直接从数据库拿到的这个url的啊,怎么跟平常的String不太一样?

    平常普通的字符串是这样的:

String result3 = "https://demofile.aliyun.com/27.html";
System.out.println(result3);

输出:https://demofile.aliyun.com/27.html

    神奇哦~~~

    猛然瞥见自己写的@RequestMapping,顿时觉得找到问题所在了!

    看来是把返回的数据类型配置成了application/json,怪不得加了一层双引号,改成文本类型就好了text/plain

修改前:
    @ResponseStatus(HttpStatus.OK)
    @ApiOperation("获取邮件信息-对外api")
    @RequestMapping(value = "/email/content", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", value = "Authorization", required = true, dataType = "string", paramType = "header")})
    public String getEmailInfo(@RequestParam(value = "id") Integer id) {
        return emailService.getEmailUriFormOss(id);
    }

修改后:
    @ResponseStatus(HttpStatus.OK)
    @ApiOperation("获取邮件信息-对外api")
    @RequestMapping(value = "/email/content", method = RequestMethod.GET, produces = MediaType.TEXT_PLAIN)
    @ApiImplicitParams({@ApiImplicitParam(name = "Authorization", value = "Authorization", required = true, dataType = "string", paramType = "header")})
    public String getEmailInfo(@RequestParam(value = "id") Integer id) {
        return emailService.getEmailUriFormOss(id);
    }

以上是关于我在java项目中加了spring支持,加了quartz-1.6.1.jar包,在使用quartz实现任务调用时的代码如下:的主要内容,如果未能解决你的问题,请参考以下文章

Spring - java http get请求,返回字符串多加了一层引号“

Spring - java http get请求,返回字符串多加了一层引号“

Spring - java http get请求,返回字符串多加了一层引号“

Spring - java http get请求,返回字符串多加了一层引号“

Spring - java http get请求,返回字符串多加了一层引号“

如何在没有 spring-boot 的情况下在 spring-webflux 中加载配置?