定时器没执行

定时器没执行

老师,你好。我按照教程里写的代码,但运行Tomcat后,在控制台一直没看到执行定时器。我检查了很久并且网上找了资料都没找到问题(依赖包已经添加到lib中了),麻烦老师帮我检查下是什么原因?(不知道跟电脑有没有关系,我用的是M1芯片的MacBook Air)


这是我的项目代码:https://gitee.com/linxuanqing/imooc-reder


控制台输出:

/Users/daniel/Applications/apache-tomcat-8.5.72/bin/catalina.sh run
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
已连接到目标 VM, 地址: ''127.0.0.1:63168',传输: '套接字''
19-Feb-2022 13:01:15.796 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.服务器版本: Apache Tomcat/8.5.72
19-Feb-2022 13:01:15.798 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器构建:        Oct 1 2021 15:15:33 UTC
19-Feb-2022 13:01:15.798 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 服务器版本号:      8.5.72.0
19-Feb-2022 13:01:15.798 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 操作系统名称:      Mac OS X
19-Feb-2022 13:01:15.799 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.版本:           12.2.1
19-Feb-2022 13:01:15.799 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 架构:              aarch64
19-Feb-2022 13:01:15.799 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 环境变量:     /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
19-Feb-2022 13:01:15.799 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java虚拟机版本:    11.0.14+9-LTS
19-Feb-2022 13:01:15.799 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.供应商:        Azul Systems, Inc.
19-Feb-2022 13:01:15.799 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:     /Users/daniel/Library/Caches/JetBrains/IntelliJIdea2021.2/tomcat/2c361f04-cae4-46ea-a5ce-fc3fed9dc208
19-Feb-2022 13:01:15.800 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:     /Users/daniel/Applications/apache-tomcat-8.5.72
19-Feb-2022 13:01:15.800 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       --add-opens=java.base/java.lang=ALL-UNNAMED
19-Feb-2022 13:01:15.800 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       --add-opens=java.base/java.io=ALL-UNNAMED
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       --add-opens=java.base/java.util=ALL-UNNAMED
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.util.logging.config.file=/Users/daniel/Library/Caches/JetBrains/IntelliJIdea2021.2/tomcat/2c361f04-cae4-46ea-a5ce-fc3fed9dc208/conf/logging.properties
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -agentlib:jdwp=transport=dt_socket,address=127.0.0.1:63168,suspend=y,server=n
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -javaagent:/Users/daniel/Library/Caches/JetBrains/IntelliJIdea2021.2/captureAgent/debugger-agent.jar
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcom.sun.management.jmxremote=
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcom.sun.management.jmxremote.port=1099
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcom.sun.management.jmxremote.ssl=false
19-Feb-2022 13:01:15.801 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcom.sun.management.jmxremote.password.file=/Users/daniel/Library/Caches/JetBrains/IntelliJIdea2021.2/tomcat/2c361f04-cae4-46ea-a5ce-fc3fed9dc208/jmxremote.password
19-Feb-2022 13:01:15.802 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcom.sun.management.jmxremote.access.file=/Users/daniel/Library/Caches/JetBrains/IntelliJIdea2021.2/tomcat/2c361f04-cae4-46ea-a5ce-fc3fed9dc208/jmxremote.access
19-Feb-2022 13:01:15.802 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.rmi.server.hostname=127.0.0.1
19-Feb-2022 13:01:15.802 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djdk.tls.ephemeralDHKeySize=2048
19-Feb-2022 13:01:15.802 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
19-Feb-2022 13:01:15.802 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dorg.apache.catalina.security.SecurityListener.UMASK=0027
19-Feb-2022 13:01:15.802 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dignore.endorsed.dirs=
19-Feb-2022 13:01:15.802 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcatalina.base=/Users/daniel/Library/Caches/JetBrains/IntelliJIdea2021.2/tomcat/2c361f04-cae4-46ea-a5ce-fc3fed9dc208
19-Feb-2022 13:01:15.802 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Dcatalina.home=/Users/daniel/Applications/apache-tomcat-8.5.72
19-Feb-2022 13:01:15.802 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log 命令行参数:       -Djava.io.tmpdir=/Users/daniel/Applications/apache-tomcat-8.5.72/temp
19-Feb-2022 13:01:15.802 信息 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 在java.library.path:[/Users/daniel/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.]上找不到基于APR的Apache Tomcat本机库,该库允许在生产环境中获得最佳性能
19-Feb-2022 13:01:15.827 信息 [main] org.apache.coyote.AbstractProtocol.init 初始化协议处理器 ["http-nio-9090"]
19-Feb-2022 13:01:15.840 信息 [main] org.apache.tomcat.util.net.NioSelectorPool.getSharedSelector Using a shared selector for servlet write/read
19-Feb-2022 13:01:15.848 信息 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 301 ms
19-Feb-2022 13:01:15.885 信息 [main] org.apache.catalina.core.StandardService.startInternal 正在启动服务[Catalina]
19-Feb-2022 13:01:15.885 信息 [main] org.apache.catalina.core.StandardEngine.startInternal 正在启动 Servlet 引擎:[Apache Tomcat/8.5.72]
19-Feb-2022 13:01:15.908 信息 [main] org.apache.coyote.AbstractProtocol.start 开始协议处理句柄["http-nio-9090"]
[2022-02-19 01:01:15,909] 工件 imooc-reder:Web exploded: 正在等待服务器连接以启动工件部署…
19-Feb-2022 13:01:15.924 信息 [main] org.apache.catalina.startup.Catalina.start Server startup in 74 ms
已连接到服务器
[2022-02-19 01:01:16,294] 工件 imooc-reder:Web exploded: 正在部署工件,请稍候…
19-Feb-2022 13:01:17.363 信息 [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 至少有一个JAR被扫描用于TLD但尚未包含TLD。 为此记录器启用调试日志记录,以获取已扫描但未在其中找到TLD的完整JAR列表。 在扫描期间跳过不需要的JAR可以缩短启动时间和JSP编译时间。
13:01:17.527 [RMI TCP Connection(2)-127.0.0.1] DEBUG org.springframework.web.filter.CharacterEncodingFilter - Filter 'characterFiler' configured for use
[2022-02-19 01:01:17,543] 工件 imooc-reder:Web exploded: 工件已成功部署
[2022-02-19 01:01:17,543] 工件 imooc-reder:Web exploded: 部署已花费 1,249 毫秒
19-Feb-2022 13:01:25.915 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 把web 应用程序部署到目录 [/Users/daniel/Applications/apache-tomcat-8.5.72/webapps/manager]
19-Feb-2022 13:01:25.954 信息 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web应用程序目录[/Users/daniel/Applications/apache-tomcat-8.5.72/webapps/manager]的部署已在[39]毫秒内完成


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
好帮手慕小尤 2022-02-19 14:44:37

同学你好,测试课程源码是可以重启实现定时任务的,则建议同学查看这就是代码是否有开启定时任务。如下所示:

https://img1.sycdn.imooc.com//climg/621091b00907edc109680296.jpg

https://img1.sycdn.imooc.com//climg/6210918409c81de606700182.jpg

如果还存在问题,则建议同学使用课程源码试一下,或以复制粘贴的方式反馈代码,便于老师定位问题。

祝学习愉快!

  • 提问者 Daniel_Lin_42 #1

    已经找到原因了,是因为在web.xml文件中配置servlet时,少加了个参数。这导致启动tomcat后,spring ioc容器没初始化,所以定时器也就没启动。各位引以为戒。

    <>0</>


    2022-02-21 18:56:54
  • 提问者 Daniel_Lin_42 #2
    <>0</>


    2022-02-21 18:57:59
  • 好帮手慕小尤 回复 提问者 Daniel_Lin_42 #3

    感谢同学的分享,继续加油!

    祝学习愉快!

    2022-02-22 09:37:35
Daniel_Lin_42 提问者 2022-02-19 13:26:10

老师你好,我发现是因为我启动tomcat后,前端没进行任何操作,定时器没执行。但我在前端任意进行操作后,再在后台就能正常看到定时器一直执行了。这是什么原因?启动Tomcat后要先有请求进来,定时器才会开启?

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师