求高手指导,SSH整合,annotation注入失败
这是我写的action
public class UserAction {
private final Log log = LogFactory.getLog(UserAction.class);
@Resource
private UserService userService;
}
在请求http://localhost:8080/myframework/model/User/edit.action时报错:
Unable to instantiate Action, com.liuhan.actions.UserAction, defined for 'User/edit' in namespace '/model'Error creating bean with name 'com.liuhan.actions.UserAction': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.liuhan.service.user.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, mappedName=, description=, name=, type=class java.lang.Object, authenticationType=CONTAINER)}
我的applicationContext.xml配置是这样写的:
<!-- 配置spring对annotation的支持 -->
<context:annotation-config/>
<context:component-scan
base-package="com.liuhan.*.service,com.liuhan.*.dao"
name-generator="com.liuhan.utils.springutil.MyAppNameGenerator"
/>
其中,MyAppNameGenerator.java是这样写的,这个应该是没有问题的,我们项目中也是这样子的。
public class MyAppNameGenerator extends AnnotationBeanNameGenerator{
/**
* 设置默认注入的bean是方式是,将Impl结束的bean实体,注入到去掉Impl结束的注解里
*/
@Override
public String generateBeanName(BeanDefinition arg0,
BeanDefinitionRegistry arg1) {
String name = super.generateBeanName(arg0, arg1);
if (name == null)
return null;
if (name.endsWith("Impl"))
name = name.substring(0, name.length() - 4);
else
name = name.substring(0);
return name;
}
}
有UserService接口,UserServiceImpl实现类,
@Service
public class UserServiceImpl implements UserService {}
Struts2中没有特别的配置,下面的我的引用的包。
aopalliance.jar
aspectjweaver.jar
c3p0-0.9.1.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.4.jar
commons-lang3-3.1.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
freemarker-2.3.19.jar
hibernate-c3p0-4.2.0.Final.jar
hibernate-commons-annotations-4.0.1.Final.jar
hibernate-core-4.2.0.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
javassist-3.11.0.GA.jar
jboss-logging-3.1.0.GA.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
mchange-commons-java-0.2.3.4.jar
mysql-connector-java-5.1.7-bin.jar
ognl-3.0.6.jar
spring-aop-3.2.2.jar
spring-beans-3.2.2.jar
spring-context-3.2.2.jar
spring-core-3.2.2.jar
spring-expression-3.2.2.jar
spring-jdbc-3.2.2.jar
spring-orm-3.2.2.jar
spring-tx-3.2.2.jar
spring-web-3.2.2.jar
struts2-core-2.3.12.jar
struts2-spring-plugin-2.2.3.1.jar
xwork-core-2.3.12.jar
不知道哪儿不对,是包不全,还是什么问题,我对比了我们项目中的配置也没有看出来什么不一样。请高手给解答下,如果需要其他的配置信息,请告知也,我再发上去。
public class UserAction {
private final Log log = LogFactory.getLog(UserAction.class);
@Resource
private UserService userService;
}
在请求http://localhost:8080/myframework/model/User/edit.action时报错:
Unable to instantiate Action, com.liuhan.actions.UserAction, defined for 'User/edit' in namespace '/model'Error creating bean with name 'com.liuhan.actions.UserAction': Injection of resource dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.liuhan.service.user.UserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@javax.annotation.Resource(shareable=true, mappedName=, description=, name=, type=class java.lang.Object, authenticationType=CONTAINER)}
我的applicationContext.xml配置是这样写的:
<!-- 配置spring对annotation的支持 -->
<context:annotation-config/>
<context:component-scan
base-package="com.liuhan.*.service,com.liuhan.*.dao"
name-generator="com.liuhan.utils.springutil.MyAppNameGenerator"
/>
其中,MyAppNameGenerator.java是这样写的,这个应该是没有问题的,我们项目中也是这样子的。
public class MyAppNameGenerator extends AnnotationBeanNameGenerator{
/**
* 设置默认注入的bean是方式是,将Impl结束的bean实体,注入到去掉Impl结束的注解里
*/
@Override
public String generateBeanName(BeanDefinition arg0,
BeanDefinitionRegistry arg1) {
String name = super.generateBeanName(arg0, arg1);
if (name == null)
return null;
if (name.endsWith("Impl"))
name = name.substring(0, name.length() - 4);
else
name = name.substring(0);
return name;
}
}
有UserService接口,UserServiceImpl实现类,
@Service
public class UserServiceImpl implements UserService {}
Struts2中没有特别的配置,下面的我的引用的包。
aopalliance.jar
aspectjweaver.jar
c3p0-0.9.1.jar
commons-fileupload-1.2.2.jar
commons-io-2.0.1.jar
commons-lang-2.4.jar
commons-lang3-3.1.jar
commons-logging-1.1.1.jar
dom4j-1.6.1.jar
freemarker-2.3.19.jar
hibernate-c3p0-4.2.0.Final.jar
hibernate-commons-annotations-4.0.1.Final.jar
hibernate-core-4.2.0.Final.jar
hibernate-jpa-2.0-api-1.0.1.Final.jar
javassist-3.11.0.GA.jar
jboss-logging-3.1.0.GA.jar
jboss-transaction-api_1.1_spec-1.0.0.Final.jar
mchange-commons-java-0.2.3.4.jar
mysql-connector-java-5.1.7-bin.jar
ognl-3.0.6.jar
spring-aop-3.2.2.jar
spring-beans-3.2.2.jar
spring-context-3.2.2.jar
spring-core-3.2.2.jar
spring-expression-3.2.2.jar
spring-jdbc-3.2.2.jar
spring-orm-3.2.2.jar
spring-tx-3.2.2.jar
spring-web-3.2.2.jar
struts2-core-2.3.12.jar
struts2-spring-plugin-2.2.3.1.jar
xwork-core-2.3.12.jar
不知道哪儿不对,是包不全,还是什么问题,我对比了我们项目中的配置也没有看出来什么不一样。请高手给解答下,如果需要其他的配置信息,请告知也,我再发上去。
...全文
相关推荐
SSH整合例子(SSH例子)
SSH整合的例子 带SQL语句 很全的一个例子. 增加AOP事务处理
基于SSH框架的百货中心供应链管理系统设计与实现详解
进销存管理是企业信息化的基础环节,百货中心供应链管理系统正是围绕采购、入库、销售、出库、库存与供应商结算这条核心链路展开的数字化解决方案。在JavaEE技术体系中,SSH框架(Struts2+Spring+Hibernate)作为经典轻量级组合,通过分层架构实现Web层、业务层与持久层的解耦,其中Hibernate负责对象关系映射与数据持久化,Spring统一管理事务与依赖注入,Struts2处理请求流转与页面跳转。这种结构清晰、职责分明的设计模式,既适合教学理解,也能支撑中小规模业务场景。本文从数据库设计
SSH框架整合入门helloworld两种事务管理方式(失败的自己)
NULL 博文链接:https://dreamoftch.iteye.com/blog/1935668
SSH整合开发
该文档包括ssh开发环境的集成,jar包冲突,struts把二进制数据写入数据库,以及初学者学习ssh时候常见的错误,并且把常见错误进行总结,是一个ssh学习中可能遇到的一些列异常的总结,以及解决方法,希望对大家有用
图解SSH三框架整合
图解SSH三框架整合 pdf格式 有兴趣的可以看看


