eclipse运行ssh项目出现"HTTP Status 500 - Unable to instantiate Action"

来源:互联网 发布:js判断包含某个字符串 编辑:程序博客网 时间:2024/05/22 15:57
1. 在eclipse运行ssh项目出现以下错误信息:
HTTP Status 500 - Unable to instantiate Action, org.gditc.weicommunity.action.user.UserAction, defined for 'user' in namespace '/pages'Error creating bean with name 'org.gditc.weicommunity.action.user.UserAction': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected org.gditc.weicommunity.service.IUserService org.gditc.weicommunity.action.BaseAction.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.gditc.weicommunity.service.IUserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=userService)}type Exception reportmessage Unable to instantiate Action, org.gditc.weicommunity.action.user.UserAction, defined for 'user' in namespace '/pages'Error creating bean with name 'org.gditc.weicommunity.action.user.UserAction': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected org.gditc.weicommunity.service.IUserService org.gditc.weicommunity.action.BaseAction.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.gditc.weicommunity.service.IUserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=userService)}description The server encountered an internal error that prevented it from fulfilling this request.exceptionUnable to instantiate Action, org.gditc.weicommunity.action.user.UserAction,  defined for 'user' in namespace '/pages'Error creating bean with name 'org.gditc.weicommunity.action.user.UserAction': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected org.gditc.weicommunity.service.IUserService org.gditc.weicommunity.action.BaseAction.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.gditc.weicommunity.service.IUserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=userService)}com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:316)com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:397)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:552)org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)root causeorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.gditc.weicommunity.action.user.UserAction': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: protected org.gditc.weicommunity.service.IUserService org.gditc.weicommunity.action.BaseAction.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.gditc.weicommunity.service.IUserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=userService)}org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:326)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1204)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:385)com.opensymphony.xwork2.spring.SpringObjectFactory.autoWireBean(SpringObjectFactory.java:203)com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:183)com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:154)com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:171)com.opensymphony.xwork2.factory.DefaultActionFactory.buildAction(DefaultActionFactory.java:22)com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:141)com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:297)com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:397)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:552)org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)root causeorg.springframework.beans.factory.BeanCreationException: Could not autowire field: protected org.gditc.weicommunity.service.IUserService org.gditc.weicommunity.action.BaseAction.userService; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.gditc.weicommunity.service.IUserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=userService)}org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:542)org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:323)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1204)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:385)com.opensymphony.xwork2.spring.SpringObjectFactory.autoWireBean(SpringObjectFactory.java:203)com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:183)com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:154)com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:171)com.opensymphony.xwork2.factory.DefaultActionFactory.buildAction(DefaultActionFactory.java:22)com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:141)com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:297)com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:397)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:552)org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)root causeorg.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.gditc.weicommunity.service.IUserService] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true), @org.springframework.beans.factory.annotation.Qualifier(value=userService)}org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:1261)org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1009)org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:904)org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:514)org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:323)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1204)org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:385)com.opensymphony.xwork2.spring.SpringObjectFactory.autoWireBean(SpringObjectFactory.java:203)com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:183)com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:154)com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:171)com.opensymphony.xwork2.factory.DefaultActionFactory.buildAction(DefaultActionFactory.java:22)com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:141)com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:297)com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:397)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:552)org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)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/7.0.54 logs.Apache Tomcat/7.0.54
2. 出现以上问题可能是:
在applicationContext.xml配置文件中, 把用Repository, Service, Controller注解的bean加到spring容器中, 填写的基包名与项目的基包名不一致。
<!-- 把用Repository, Service, Controller注解的bean加到spring容器中 --><context:component-scan base-package="org.gditc.weicommunity"/>
本人项目采用:struts2 + hiberbate4 + spring4
applicationContext.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:p="http://www.springframework.org/schema/p"    xmlns:c="http://www.springframework.org/schema/c"    xmlns:tx="http://www.springframework.org/schema/tx"    xmlns:aop="http://www.springframework.org/schema/aop"    xmlns:util="http://www.springframework.org/schema/util"    xmlns:context="http://www.springframework.org/schema/context"    xmlns:task="http://www.springframework.org/schema/task"    xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans-4.0.xsd            http://www.springframework.org/schema/tx            http://www.springframework.org/schema/tx/spring-tx-4.0.xsd            http://www.springframework.org/schema/aop            http://www.springframework.org/schema/aop/spring-aop-4.0.xsd            http://www.springframework.org/schema/util            http://www.springframework.org/schema/util/spring-util-4.0.xsd            http://www.springframework.org/schema/context            http://www.springframework.org/schema/context/spring-context-4.0.xsd             http://www.springframework.org/schema/task            http://www.springframework.org/schema/task/spring-task-4.0.xsd"><!-- 把用Repository, Service, Controller注解的bean加到spring容器中 --><context:component-scan base-package="org.gditc.weicommunity"/><!-- 配置dataSource --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"p:user="root"p:password="123456"p:driverClass="com.mysql.jdbc.Driver"p:jdbcUrl="jdbc:mysql://localhost:3306/weicommunity?useUnicode=true&characterEncoding=UTF-8"p:maxPoolSize="20"p:minPoolSize="2"p:maxIdleTime="2000"p:initialPoolSize="2"/><!-- 配置sessionFactory --><bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"  p:dataSource-ref="dataSource"  p:configLocation="classpath:hibernate.cfg.xml"/><!-- 配置transactionManager事务管理器 --><bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"p:sessionFactory-ref="sessionFactory"/><!-- 使用annotation配置事务,注意,服务层一定要配置事务,否则报错:No Session found for current thread --><tx:annotation-driven transaction-manager="transactionManager"/></beans>
web.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?><web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>    <!-- 所有的请求都会先经过filter,此处配置了一个Struts2的过滤器 --><filter><filter-name>struts2</filter-name><filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>   <!-- 告诉spring配置文件 --> <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>/WEB-INF/applicationContext*.xml</param-value>    </context-param>    <!-- 定义 Spring 的上下文监听器,它会负责初始化 ApplicationContext -->    <listener>        <listener-class>            org.springframework.web.context.ContextLoaderListener        </listener-class></listener></web-app>
hibernate.cfg.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE hibernate-configuration PUBLIC        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"        "http://hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- 配置数据库信息========================== --><!-- hibernate连接MySql数据库 --><property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property><!-- <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property> -->    <!-- <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> --><!-- <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> --><!-- <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/weicommunity?useUnicode=true&characterEncoding=UTF-8</property> --><!-- hibernate连接Oracle数据库 --><!-- <property name="dialect">org.hibernate.dialect.OracleDialect</property> <property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property> <property name="connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property> --><!-- hibernate连接Microsoft Sql Server数据库 --><!-- <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> <property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property> <property name="connection.url">jdbc:sqlserver://localhost:1433;DatabaseName=Test</property> --><!-- <property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">123456</property><property name="hibernate.connection.characterEncoding">UTF-8</property> --><!-- 配置数据库信息==========================end --><!-- JDBC connection pool (use the built-in) --><!-- 真正开发很少用hibernate自带的连接池,用application本身用jndi注册在里面的连接池 --><!-- <property name="connection.pool_size">1</property> --><!-- SQL dialect --><!-- 数据库方言hql是hibernate官方的语言 --><!-- <property name="dialect">org.hibernate.dialect.HSQLDialect</property> --><!-- Enable Hibernate's automatic session context management --><!-- <property name="current_session_context_class">thread</property> --><!-- Disable the second-level cache --><!-- 不使用二级缓存的设置 --><!-- 优化hibernate的时候会用到 --><!-- <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> --><!-- Echo all executed SQL to stdout --><!-- 控制台打印生成的sql语句, 默认是false --><property name="hibernate.show_sql">true</property><!-- Drop and re-create the database schema on startup --><!-- hibernate是否自动生成建表语句 --><!-- ddl数据库定义语言,即建表语句 --><!-- 是否支持自动创建表 :    create-drop 、  先创建再删除 (获取SessionFactory时就创建表,关闭SessionFactory时就删除表)    create 、 每次都会重新创建表    update、 第一次没有创建表就会创建表,后面只修改表结构    validate : 只验证 -->   <property name="hibernate.hbm2ddl.auto">update</property><!-- 格式化SQL语句 --><property name="hibernate.format_sql">true</property><!-- 导入映射实体的配置文件 --><!-- <mapping resource="org/gditc/weicommunity/domain/User.hbm.xml" /> --><!-- 配置持久化类 --><mapping class="org.gditc.weicommunity.domain.User" /><mapping class="org.gditc.weicommunity.domain.Role" /><mapping class="org.gditc.weicommunity.domain.Level" /><mapping class="org.gditc.weicommunity.domain.Board" /><mapping class="org.gditc.weicommunity.domain.Post" /><mapping class="org.gditc.weicommunity.domain.Tag" /><mapping class="org.gditc.weicommunity.domain.Comment" /><mapping class="org.gditc.weicommunity.domain.Message" /><mapping class="org.gditc.weicommunity.domain.Bulletin" /><mapping class="org.gditc.weicommunity.domain.Media" /><mapping class="org.gditc.weicommunity.domain.Gift" /><mapping class="org.gditc.weicommunity.domain.Present" /><mapping class="org.gditc.weicommunity.domain.Mood" /><mapping class="org.gditc.weicommunity.domain.Favorites" /></session-factory></hibernate-configuration>
struts.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <constant name="struts.enable.DynamicMethodInvocation" value="true" />    <constant name="struts.devMode" value="false" />    <package name="default" namespace="/" extends="struts-default">        <global-results>            <result name="error">/error.jsp</result>        </global-results>        <global-exception-mappings>            <exception-mapping exception="java.lang.Exception" result="error"/>        </global-exception-mappings>    </package>            <!-- <include file="example.xml"/> -->    <!-- Add packages here -->    <include file="config/struts/struts-user.xml" /></struts>
以上配置文件内容仅供参考...
0 0
原创粉丝点击