day76_maven02:maven拆分各层配置后,【pom.xml、Spring配置都按层拆分(dao/service/action)】,导致报错解决。
来源:互联网 发布:价值观不同的体现知乎 编辑:程序博客网 时间:2024/06/06 06:29
=== maven拆分各层配置后,【pom.xml、Spring配置都按层拆分(dao/service/action)】,导致报错解决。
Spring配置拆分:===【各层只配置本层相关配置。】
①dao:applicationContext-dao.xml
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 数据库连接池 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver" /><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/maven" /><property name="user" value="root" /><property name="password" value="root" /></bean><!-- 配置sessionFactory --><bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"><!-- 依赖dataSource --><property name="dataSource" ref="dataSource"/><!-- 创建工厂需要加载hibernate映射文件 --><property name="configLocations" value="classpath:hibernate.cfg.xml"></property></bean><bean name="customerDao" class="cn.heima.dao.impl.CustomerDaoImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean></beans>
②service:applicationContext-service.xml
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"><!-- 事务属于service层 --><bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory"></property></bean><tx:advice id="advice" transaction-manager="transactionManager"><tx:attributes> <tx:method name="find*" read-only="true" /></tx:attributes></tx:advice><aop:config> <aop:pointcut id="serviceMethod" expression="execution(* cn.heima.service.impl.*.*(..))"/> <aop:advisor advice-ref="advice" pointcut-ref="serviceMethod"/></aop:config><bean name="customerService" class="cn.heima.service.impl.CustomerServiceImpl"><property name="customerDao" ref="customerDao"></property></bean></beans>
③action:applicationContext-action.xml
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd"><bean name="customerAction" class="cn.heima.action.CustomerAction" scope="prototype"><property name="customerService" ref="customerService"></property></bean></beans>
修改web.xml:读取spring配置文件
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <!-- ContextLoaderListener 父类里--> <param-name>contextConfigLocation</param-name><!-- <param-value>classpath:applicationContext.xml</param-value> --> <param-value>classpath:applicationContext-*.xml</param-value> </context-param>
=====错误信息:service创建失败。
===老师:找不到service层Spring配置。
HTTP Status 500 -type Exception reportmessagedescription The server encountered an internal error () that prevented it from fulfilling this request.exceptionUnable to instantiate Action, customerAction, defined for 'customerAction_findByCustId' in namespace '/'Error creating bean with name 'customerAction' defined in file [F:\EclipseWorkSpace\ssh_parent\ssh_web\target\classes\applicationContext-action.xml]: Cannot resolve reference to bean 'customerService' while setting bean property 'customerService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'customerService' is defined - action - file:/F:/EclipseWorkSpace/ssh_parent/ssh_web/target/classes/struts.xml:9:72com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:314)com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:395)com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:194)org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37)com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:554)org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81)org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)root causeorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'customerAction' defined in file [F:\EclipseWorkSpace\ssh_parent\ssh_web\target\classes\applicationContext-action.xml]: Cannot resolve reference to bean 'customerService' while setting bean property 'customerService'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'customerService' is definedorg.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:359)org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1226)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:325)org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:161)com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:178)com.opensymphony.xwork2.factory.DefaultActionFactory.buildAction(DefaultActionFactory.java:22)com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:148)com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:295)com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:395)com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:194)org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37)com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:554)org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81)org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)root causeorg.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'customerService' is definedorg.springframework.beans.factory.support.DefaultListableBeanFactory.getBeanDefinition(DefaultListableBeanFactory.java:698)org.springframework.beans.factory.support.AbstractBeanFactory.getMergedLocalBeanDefinition(AbstractBeanFactory.java:1175)org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:284)org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:351)org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:108)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1481)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1226)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:543)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482)org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:325)org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1054)com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:161)com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:178)com.opensymphony.xwork2.factory.DefaultActionFactory.buildAction(DefaultActionFactory.java:22)com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:148)com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:295)com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:395)com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:194)org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37)com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:554)org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81)org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)note The full stack trace of the root cause is available in the Apache Tomcat/6.0.29 logs.====解决:
<listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <context-param> <!-- ContextLoaderListener 父类里--> <param-name>contextConfigLocation</param-name><!-- <param-value>classpath:applicationContext.xml</param-value> --><!-- 报错:service 创建失败。==######=原因:classpath只能读取src目录下的配置文件,【classpath*】:还可以读取jar包中的配置文件 <param-value>classpath:applicationContext-*.xml</param-value> --> <param-value>classpath*:applicationContext-*.xml</param-value> </context-param>
阅读全文
0 0
- day76_maven02:maven拆分各层配置后,【pom.xml、Spring配置都按层拆分(dao/service/action)】,导致报错解决。
- maven pom.xml报错解决
- Maven pom.xml配置
- maven pom.xml 配置
- maven-pom.xml配置
- maven pom.xml配置
- Spring配置事务在DAO层和Service层
- Spring配置事务在Dao层和Service层
- Spring配置事务在DAO层和Service层
- action,dao和service在spring中的配置
- 解决在maven中配置pom.xml后,启动程序仍无法找到jar包
- Maven+Mybatis+Spring配置之第一步:配置pom.xml依赖
- Spring MVC +Mybatis + Maven 配置之pom.xml配置
- Spring事务配置在DAO和Service层
- maven pom.xml配置说明
- maven pom.xml jetty 配置
- Maven pom.xml 配置详解
- Maven pom.xml 配置详解
- 1043. 输出PATest(20)
- 存储空间分配问题.笔记
- 高级软件工程实验五
- 执行jmap -heap PID VMVersionMismatchException: Supported versions are 24.75-b04.
- Bzoj
- day76_maven02:maven拆分各层配置后,【pom.xml、Spring配置都按层拆分(dao/service/action)】,导致报错解决。
- C. Naming Company 贪心
- 换了个地方,来北京工作,面试了4家python爬虫,写一些这四家(记得的)笔试题(1)
- 设置图表的线型、属性和格式化字符串
- IOS development notes
- SQL调优
- JavaScript学习资料一
- PAT 1008. 数组元素循环右移问题 (20)
- UE4模拟Unity的CameraLayer