2 qq 15720657 qq_15720657 于 2016.03.14 13:32 提问

spring注解 @service 使用报错.

3个报错:
Failed to read candidate component class: file [D:\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\bootstrap-3.3.5\WEB-INF\classes\fish\code\dao\user\UserDao.class]; nested exception is org.springframework.core.NestedIOException: ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [D:\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\bootstrap-3.3.5\WEB-INF\classes\fish\code\dao\user\UserDao.class]; nested exception is java.lang.IllegalArgumentException

ASM ClassReader failed to parse class file - probably due to a new Java class file version that isn't supported yet: file [D:\workspace.metadata.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\bootstrap-3.3.5\WEB-INF\classes\fish\code\dao\user\UserDao.class]; nested exception is java.lang.IllegalArgumentException

BeanFactory not initialized or already closed - call 'refresh' before accessing beans via the ApplicationContext

结构:
图片说明

代码:
@Repository
public class UserDao extends SqlSessionDaoSupport{

public UserModel getUserModel(){
    return this.getSqlSession().selectOne("UserModel.getUserById",1L);
}

}

@Service
public class UserService {
@Resource
private UserDao userDao;
public UserModel getUserModel(){
return userDao.getUserModel();
}
}

@WebServlet(name = "userServlet", urlPatterns = { "/user" })
public class UserServlet extends HttpServlet {
public void init() throws ServletException {
WebApplicationContext context = WebApplicationContextUtils
.getWebApplicationContext(getServletContext());
this.setUserService((UserService) context.getBean("userService"));
}
}

spring配置扫描
之后就报上边3个错.

求大神指点.

2个回答

qq_15720657
qq_15720657   2016.03.14 13:33

写上这句话就报错.
不写这句话程序可以跑起来,但是在servlet里边获取不到userService.

u013772876
u013772876   2016.03.14 13:51

应该是你UserDao这个类所对应的xml配置错误导致!好好检查下

qq_15720657
qq_15720657 并不是, spring从3升到4就好了.
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
项目运行报错,service注解无效
报错信息:Error creating bean with name 'verControllerService': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException。。。。。。。 中文翻译:创
spring注解@Override无法编译
今天在导入一个meaven+spring项目的时候,一些service实现类的方法注入了重写注解,被编译器抛出: Remove @Override annotaion 因为当时导入这个项目之前我的eclipse默认jdk版本是1.5的。所以导致编译时找不到这个方法 so 之后我直接在window-preferences 下的java compiler 上修改就ok了 修改
java junit测试,注解引入service报错解决办法
作为程序员,搞后端开发,当然离不开单元测试了。举个例子,测试下mapper接口,service接口等等。当用到spring容器的时候,在测试类直接写 如下代码: @Autowired private AccountService accountServiceImpl;当运行测试代码的时候,控制台会报错,提示:accountServiceImpl注入为空,到这里,很多人都会感到不可思议,明明...
servlet中利用spring的注解@Autowired自动注入service失败,优雅的解决方法
一个项目启动时,有一些系统参数希望在web.xml加载时自动初始化:这时可以利用servlet的init方法,初始化系统参数到ServletContext。 但初始化参数时要用到一些service,如果想往常一样利用@Autowired注入service,就会在项目启动时此servlet的init方法会报错;解决这个注入失败的方法有很多,其中有一种方法感觉跟优雅,就是添加这条语句:SpringB
Spring项目中无法引入@Resource注解
问题:在Spring项目中引入@Resource注解的时候,有红色下划线错误,而且输入注解的时候不能出现自动代码补全。加入javax.annotation包后,出现警告。 解决办法:Spring项目中缺少javax.annotation包的依赖。在maven配置文件pom.xml中加入依赖。 javax.annotation jsr250-a
spring项目无法引入@Resource注解的问题处理
问题:在spring项目中引入@Resource注解的时候,有红色下划线错误,而且输入注解的时候不能出现自动代码补全。加入javax.annotation包后,出现警告。 解决办法:Spring项目中缺少javax.annotation包的依赖。在maven配置文件pom.xml中加入javax.annotation包依赖。
@service注解的简介和使用范例
spring2.5之后出现的注解,就跟在spring配置文件里配置bean差不多的功能,就是让spring自动扫描管理组件,@Service  @Controller @Repository @Component ,这四个其实是一样的功能,没有区别,只是在MVC模式上表示的层不一样,service一般标注在service层的bean上,controller标注在控制层,@Repository标注在
在使用spring mvc时,我使用了@Service这样的注解, 发现使用注解@Transactional声明的事务不起作用
问题出现的场景: 在使用spring mvc时,我使用了@Service这样的注解, 发现使用注解@Transactional声明的事务不起作用。 我的配置如下:                   原因是: component-scan和事务所在的上下文不一样,component-scan所在的配置是由servlet加载的,事务所在的配置文件是由Listen
Spring - 注解的使用 和 继承的配置
1.注解    (1)注解就是为了说明java中的某一个部分的作用(Type);     (2)注解都可以用于那个部分是@Target注解起的作用;    (3)注解可以标注在ElementType枚举类所指定的位置上;    (4)用来解析注解的类成为注解解析器; 2.依赖注入的注解     (1) bean.xml 导入注解解析器 - context命名空间,只有引用类型可以加上注
spring mvc @Qualifier注解接口来注入 @Service
如UserInfoService为接口 UserInfoServiceImpl 为其实现类        @Autowired private UserInfoService userInfoService; 此时@autowried通过默认Bytype注释,成功 此时若增加StudentServiceImpl实现UserInfoService接口,则需要通过@Qualif