关于Tomcat启动项目war包未更新问题

  • Post author:
  • Post category:其他


最近接手了一个比较老的一个项目,是通过外部引入Tomcat来进行启动,然后项目中的定时任务也是使用的Spring的Quartz,然后要加一个定时任务,毕竟是接手的项目,一边CV,一边看着Spring的文档。不能白白的抄,要抄的明白嘛。然后在运行的时候突然就发现加的定时任务就没有生效。


代码如下:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

	<!-- 每天2点处理百世仓出库单并在早上8点发送商品出库短信提醒 -->
	<bean id="terminalSurverllant5" class="cn.vcu.job.StockTaskServiceJob"></bean>
	
	<!-- 凌晨2点同步百世仓出库数据 -->
	<bean id="jobtask21"  class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
		<property name="targetObject">
			<ref bean="terminalSurverllant5" />
		</property>
		<property name="targetMethod">
			<value>shortMessage</value>
		</property>
	</bean>
	
	<!-- 2点处理百世仓出库数据 -->
	<bean id="doTime21" class="org.springframework.scheduling.quartz.CronTriggerBean">
		<property name="jobDetail">
			<ref bean="jobtask21" />
		</property>
		<property name="cronExpression">
			<value>0 0 12 * * ?</value>
		</property>
	</bean>
	
<bean id="quartzInterceptor" class="cn.vcu.web.interceptor.QuartzInterceptor"/>

    <bean id="quartzProxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
          <property name="beanNames">
              <list>
                   <value>terminalSurverllant</value>
              </list>
         </property>
         <property name="interceptorNames">
              <list>
                   <value>quartzInterceptor</value>
              </list>
         </property>
    </bean>	
<!--  profile="test,online" -->
	  <beans profile="test,online">	
		<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
			<property name="triggers">
				<list>
					<ref bean="doTime21" />
				</list>
			</property>
		</bean>
	 </beans>
	 <beans profile="dev">	
		<bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
			<property name="triggers">
				<list>
					<ref bean="doTime21" />
				</list>
			</property>
		</bean>
	 </beans>
</beans>

对于定时任务的代码我就不做过多的赘述:

可以点击参考Spring官网

因为自己也确信自己的代码没有问题,于是就在排查,就别人已经好用的定时任务注释点,然后发现代码注释了,竟然也能执行。 就知道是war包没有更新的原因。其实本可以通过maven重新编译就行。但是每次编译也很费劲。于是就从tomcat里下文章。


直到我看到了这里,如图圈中的地方。


只有打钩,就会在项目对应的目录生成war包。反之,如果不打勾“Include in project build”,那么生成项目(Ctrl+F9)的时候就不会生成war包

在这里插入图片描述



版权声明:本文为weixin_43650943原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。