NutzCN Logo
问答 aop出现的错误,不知道什么问题
发布于 2513天前 作者 ahrvk 2194 次浏览 复制 上一个帖子 下一个帖子
标签:
Caused by: org.nutz.ioc.ObjectLoadException: Object 'logInterceptor' without define!
	at org.nutz.ioc.loader.combo.ComboIocLoader.load(ComboIocLoader.java:174) ~[nutz-1.r.59.jar:?]
	at org.nutz.ioc.impl.NutIoc.get(NutIoc.java:180) ~[nutz-1.r.59.jar:?]
	... 34 more

下面是声明的方法

import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.aop.InterceptorChain;
import org.nutz.aop.MethodInterceptor;

@IocBean //声明为一个Ioc的bean,名字为logInterceptor
public class LogInterceptor implements MethodInterceptor {
    public void filter(InterceptorChain chain) throws Throwable {
        System.out.println("方法即将执行 -->" + chain.getCallingMethod());
        chain.doChain();// 继续执行其他拦截器
        System.out.println("方法执行完毕 -->" + chain.getCallingMethod());
    }
}
15 回复

@IocBy没涵盖这个类所在的package

@wendal 没发现有啥问题

类路径

package com.sctele.app.module.interceptor;

main方法

package com.sctele.app.module.interceptor;

@IocBy贴一下

@wendal 错了
main方法

@IocBy(type = ComboIocProvider.class, args = {	"*org.nutz.ioc.loader.json.JsonLoader",
												"ioc",
												"*com.sctele.core.loader.ExAnnotationIocLoader",
												"com.sctele.web.service",
												"com.sctele.web.module.*",
												"com.sctele.service",
												"com.sctele.module",
												"com.sctele.app",
												"com.sctele.core",
												"*tx"})

啥错了???

@wendal 第二个帖子贴错了

这是iocby

@IocBy(type = ComboIocProvider.class, args = { "*org.nutz.ioc.loader.json.JsonLoader",
"ioc",
"*com.sctele.core.loader.ExAnnotationIocLoader",
"com.sctele.web.service",
"com.sctele.web.module",
"com.sctele.service",
"com.sctele.module",
"com.sctele.app",
"com.sctele.core",
"*tx"})

ExAnnotationIocLoader 是什么东西? 跟AnnotationIocLoader有什么差异? 日志里面有没有logInterceptor?

@wendal
这个不知道是沿用以前项目的
日志里有

2017-12-29 14:30:25,200 DEBUG [localhost-startStop-1] loader.ExAnnotationIocLoader (ExAnnotationIocLoader.java:76) - Found @IocBean : class com.sctele.app.module.LogInterceptor

最后应该打印所有的bean name, 找找咯

@wendal 找了 生成的名字里面没有这个bean的

就在这里找的

2017-12-29 14:34:24,131 INFO  [localhost-startStop-1] loader.ExAnnotationIocLoader (ExAnnotationIocLoader.java:52) - Found 119 classes in 6 base-packages!
beans = ["redisService", "controlModule", "clientModule", "operateService", 

里面有没有logInterceptor

@wendal 没有
但是

我加了@IocBean(name="logInterceptor")
就有了

那就是ExAnnotationIocLoader 的问题了

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