日期:2014-05-17  浏览次数:20848 次

Spring定时任务调用WebService,加载不到Jar包
想要实现一个定时请求webService接口的效果,于是用了Spring的定时任务,配置:
<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean" autowire="no" lazy-init="true">  
       <property name="triggers">  
           <list>  
              <ref bean="testTrigger"/>  
           </list>  
       </property>  
       <property name="autoStartup" value="true"/>  
</bean>
    
<bean id="testTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean" lazy-init="true">  
       <property name="jobDetail" ref="testJobDetail"/>  
       <property name="cronExpression" value="*/1 * * * * ?"/><!-- 每隔1秒钟触发一次 -->  
</bean>
    
<bean id="testJobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean" lazy-init="true">   
        <property name="targetObject" ref="testJob"/>  
        <property name="targetMethod" value="execute"/>  
        <property name="concurrent" value="false"/>
        <!-- 是否允许任务并发执行。当值为false时,表示必须等到前一个线程处理完毕后才再启一个新的线程 -->  
</bean>  
<bean id="testJob" class="com.zakc.yhpc.test.TestJob" lazy-init="true"/>

实现简单的输出没有问题,但是我一引入webservice调用代码就出现ClassNotFound:org/apache/axis/client/Service,这个我在main函数中实现是没有问题的,代码:
public class TestJob {
    public void execute() {
        try {
            // 业务逻辑代码调用
            System.out.println("时间[" + new java.util.Date().toLocaleString()
                    + "]----->大家好啊!");
            Service service = new Service();
            //执行到这里就不会输出下面那句
            System.out.println(123);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
}

网上也有其它人碰到这种问题,但都没有给出解决方案,求大家帮忙,纠结了好久  ,或是有其它方案实现定时调用WebService也可以
------解决方案--------------------
main可以? 要不你把servie 也配置到spring 里。
------解决方案--------------------
引用:
Quote: 引用:

execute方法是在新的线程中执行的。