NutzCN Logo
问答 普通项目,非web项目,非mvc环境,报对象without define!
发布于 2752天前 作者 WenTao-Love 1734 次浏览 复制 上一个帖子 下一个帖子
标签:

如题,补充:
代码如下:

private static final Log logger = Logs.get();
	private NutIoc ioc;
    private QuartzManager manager;
    //cron属性
    private final Properties props_cron;
    
    public SyncEnginee(){
    	// 模拟Mvc环境下的@IocBy
        try {
        	ioc = new NutIoc(new ComboIocLoader("*quartz"));
            manager = ioc.get(QuartzManager.class);
            manager.clear();
		} catch (ClassNotFoundException e) {
			logger.error(e);
		}finally {
			props_cron = HelperUtil.readProperties("/config/cron.properties");
		} 
        
    }
   
    private void samsCheckinout(){
    	String cron = props_cron.getProperty("cron.SamsCheckinoutJob");
    	manager.cron(cron,SamsCheckinoutJob.class);
    }

异常如下:

- Not ioc bean? fallback to SimpleJobFactory
org.nutz.ioc.IocException: [samsCheckinoutJob] # For object [samsCheckinoutJob] - type:[class com.xwt.sz.ychsynchronize.quartz.SamsCheckinoutJob]
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:218)
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:239)
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:146)
	at org.nutz.integration.quartz.NutQuartzJobFactory.newJob(NutQuartzJobFactory.java:27)
	at org.quartz.core.JobRunShell.initialize(JobRunShell.java:127)
	at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:375)
Caused by: org.nutz.ioc.ObjectLoadException: Object 'samsCheckinoutJob' without define!
	at org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:174)
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:180)
	... 5 more
9 回复

SamsCheckinoutJob 这个类其实是有的,有报错,但不影响quartz运行
cron.properties配置文件,我是用来定义cron表达式的,如:cron.SamsCheckinoutJob=0 0/2 * * * ?

@wentao-love 看你代码,并不需要使用ioc吧?

@wendal 兽总,请指导。我是参考nutz-integration-quartz项目test用例 org.nutz.integration.quartz.QuartzManagerTest 来弄的

ioc = new NutIoc(new ComboIocLoader("*anno", "net.wendal.nutzbook", "*quartz"));

PS: 不要把类放在根package!!

@wendal 我换成 ioc = new NutIoc(new QuartzIocLoader());
这样子,还是会有Object 'samsCheckinoutJob' without define!呢
然后,该类已经移到非根package了。

但是,quartz正常运行。就是有org.nutz.ioc.IocException这个异常而已。
SOS,谢谢

按我写的啊

@wendal 兽总,为什么要有net.wendal.nutzbook 这一参数呢?

@wendal 按这么写的话ioc = new NutIoc(new ComboIocLoader("*anno", "net.wendal.nutzbook", "*quartz"));,在manager = ioc.get(QuartzManager.class);报java.lang.NullPointerException了

我在SamsCheckinoutJob类加上@IocBean注解,然后ioc = new NutIoc(new ComboIocLoader("*anno", "我的package根路径", "*quartz"));
就没有报错了

添加回复
请先登陆
回到顶部