首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

struts2+spring集成,提示有多个相同的注解实体,该如何解决

2012-04-26 
struts2+spring集成,提示有多个相同的注解实体Java code18:15:03,889 ERROR org.springframework.web.cont

struts2+spring集成,提示有多个相同的注解实体

Java code
18:15:03,889 ERROR org.springframework.web.context.ContextLoader:215 - Context initialization failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'loginAction': Injection of resource methods failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.itadmin.model.User] is defined: Unsatisfied dependency of type [class com.itadmin.model.User]: expected at least 1 matching bean    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:305)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:998)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:472)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)    at java.security.AccessController.doPrivileged(Native Method)    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:185)    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:164)    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:429)    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:728)    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:380)    at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)    at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)    at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)    at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3934)    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4429)    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:987)    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:909)    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:495)    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1206)    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:314)    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)    at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)    at org.apache.catalina.core.StandardService.start(StandardService.java:516)    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)    at org.apache.catalina.startup.Catalina.start(Catalina.java:583)    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)    at java.lang.reflect.Method.invoke(Method.java:597)    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No unique bean of type [com.itadmin.model.User] is defined: Unsatisfied dependency of type [class com.itadmin.model.User]: expected at least 1 matching bean    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:613)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:431)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:409)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:537)    at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:192)    at org.springframework.beans.factory.annotation.InjectionMetadata.injectMethods(InjectionMetadata.java:117)    at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:302)    ... 40 more2012-4-19 18:15:03 org.apache.catalina.core.StandardContext listenerStart 


上面是报错信息。

以下是配置文件(Spring)
HTML code
<?xml version="1.0" encoding="UTF-8"?>    <context:annotation-config />    <context:component-scan base-package="com.itadmin" />    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"        destroy-method="close">        <property name="driverClassName" value="${jdbc.driverClassName}" />        <property name="url" value="${jdbc.url}" />        <property name="username" value="${jdbc.username}" />        <property name="password" value="${jdbc.password}" />    </bean>    <context:property-placeholder location="/WEB-INF/jdbc.properties" />    <bean id="sessionFactory"        class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">        <property name="dataSource" ref="dataSource" />         <property name="packagesToScan">            <list>                <value>com.itadmin.model</value>            </list>        </property>        <property name="hibernateProperties">            <props>                <prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>                <prop key="hibernate.show_sql">true</prop>                <prop key="hibernate.format_sql">true</prop>                <prop key="hibernate.current_session_context_class">thread</prop>            </props>        </property>    </bean>    <bean id="loginAction" class="com.itadmin.action.LoginAction">    </bean>          <bean id="logoutAction" class="com.itadmin.action.LogoutAction"  scope="prototype">    </bean>           <bean id="transactionManager"       class="org.springframework.orm.hibernate3.HibernateTransactionManager">       <property name="sessionFactory">        <ref local="sessionFactory" />       </property>     </bean>         <bean id="txManager"        class="org.springframework.orm.hibernate3.HibernateTransactionManager">        <property name="sessionFactory" ref="sessionFactory" />    </bean>        <tx:annotation-driven transaction-manager="txManager"/>    <bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">        <property name="sessionFactory" ref="sessionFactory"></property>    </bean></beans>


下面是loginAction文件
Java code
package com.itadmin.action;import java.util.Map;import javax.annotation.Resource;import org.springframework.stereotype.Repository;import com.itadmin.model.User;import com.itadmin.service.UserService;import com.opensymphony.xwork2.ActionContext;//@Repositorypublic class LoginAction{    private int id;    private String name;    private String pwd;    private UserService userService;    private User user;        public boolean checkParamNull(String name, String pwd) {        if ("".equals(name) || "".equals(pwd)) {            return false;        } else {            return true;        }    }    public String execute() throws Exception{        boolean check = checkParamNull(name, pwd);        boolean userAvaiable;        if (check) {//            User user = new User();            user.setName(name);            user.setPassword(pwd);            userAvaiable = userService.userExists(user);                        id = userService.getUserByName(name).getId();            if (userAvaiable) {                Map<String, Object> sessionInfo = ActionContext.getContext().getSession();                sessionInfo.put("username", name);                sessionInfo.put("pwd", pwd);                sessionInfo.put("uid", String.valueOf(id));                return "success";            } else {                return "error";            }        } else {            return "error";        }    }    public int getId() {        return id;    }    public String getName() {        return name;    }    public String getPwd() {        return pwd;    }        public User getUser() {        return user;    }    public UserService getUserService() {        return userService;    }    public void setId(int id) {        this.id = id;    }    public void setName(String name) {        this.name = name;    }    public void setPwd(String pwd) {        this.pwd = pwd;    }    @Resource    public void setUser(User user) {        this.user = user;    }    @Resource    public void setUserService(UserService userService) {        this.userService = userService;    }} 



请大神们指教。

[解决办法]
@Resource
public void setUser(User user) {
this.user = user;
}

上面这块儿的@resource是多余的吧

热点排行