spring - 注入(inject) Autowiring 依赖项失败嵌套异常

标签 spring spring-mvc portlet spring-portlet-mvc jasig

我正在尝试部署Map Portlet,它是一个Spring MVC 框架。我在部署时遇到错误,如下所示。

13:57:25,966 ERROR [org.springframework.web.portlet.DispatcherPortlet] (ServerService Thread Pool -- 146) Context initialization failed: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mapViewController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.jasig.portlet.maps.mvc.portlet.MapViewController.setMapDao(org.jasig.portlet.maps.dao.IMapDao); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.jasig.portlet.maps.dao.IMapDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) [spring-context-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) [spring-context-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.web.portlet.FrameworkPortlet.createPortletApplicationContext(FrameworkPortlet.java:356) [spring-webmvc-portlet-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.web.portlet.FrameworkPortlet.initPortletApplicationContext(FrameworkPortlet.java:294) [spring-webmvc-portlet-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.web.portlet.FrameworkPortlet.initPortletBean(FrameworkPortlet.java:268) [spring-webmvc-portlet-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.web.portlet.GenericPortletBean.init(GenericPortletBean.java:120) [spring-webmvc-portlet-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at javax.portlet.GenericPortlet.init(GenericPortlet.java:133) [portlet-api-2.0.jar:]
    at org.gatein.pc.portlet.impl.jsr168.PortletContainerImpl.initPortlet(PortletContainerImpl.java:441) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.jsr168.PortletContainerImpl.start(PortletContainerImpl.java:296) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.PortletContainerLifeCycle.invokeStart(PortletContainerLifeCycle.java:99) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.LifeCycle.promote(LifeCycle.java:146) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.LifeCycle.promote(LifeCycle.java:107) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.PortletFilterLifeCycle.promoteDependents(PortletFilterLifeCycle.java:86) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.LifeCycle.promote(LifeCycle.java:115) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.PortletApplicationLifeCycle.promoteDependents(PortletApplicationLifeCycle.java:349) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.LifeCycle.promote(LifeCycle.java:115) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.LifeCycle.managedStart(LifeCycle.java:72) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.deployment.PortletApplicationDeployment.install(PortletApplicationDeployment.java:150) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.deployment.PortletApplicationDeployer.add(PortletApplicationDeployer.java:199) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.exoplatform.portal.pc.ExoKernelIntegration.onEvent(ExoKernelIntegration.java:207) [exo.portal.component.pc-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
    at org.gatein.wci.ServletContainer.safeFireEvent(ServletContainer.java:319) [wci-wci-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.gatein.wci.ServletContainer.fireEvent(ServletContainer.java:338) [wci-wci-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.gatein.wci.ServletContainer.access$400(ServletContainer.java:56) [wci-wci-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.gatein.wci.ServletContainer$RegistrationImpl.registerWebApp(ServletContainer.java:462) [wci-wci-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.gatein.wci.jboss.JB7ServletContainerContext.start(JB7ServletContainerContext.java:369) [wci-jboss7-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.gatein.wci.jboss.JB7ServletContainerContext.lifecycleEvent(JB7ServletContainerContext.java:223) [wci-jboss7-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:115) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3772) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
    at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
    at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
    at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_65]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_65]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_65]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_65]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_65]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.jasig.portlet.maps.mvc.portlet.MapViewController.setMapDao(org.jasig.portlet.maps.dao.IMapDao); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.jasig.portlet.maps.dao.IMapDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:593) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    ... 45 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.jasig.portlet.maps.dao.IMapDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:924) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:793) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:551) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    ... 47 more

13:57:25,968 ERROR [org.gatein.pc.portlet.impl.container.LifeCycle] (ServerService Thread Pool -- 146) Cannot promote object to STARTED: org.gatein.pc.portlet.container.PortletInitializationException: The portlet map threw a runtime exception during init
    at org.gatein.pc.portlet.impl.jsr168.PortletContainerImpl.start(PortletContainerImpl.java:312) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.PortletContainerLifeCycle.invokeStart(PortletContainerLifeCycle.java:99) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.LifeCycle.promote(LifeCycle.java:146) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.LifeCycle.promote(LifeCycle.java:107) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.PortletFilterLifeCycle.promoteDependents(PortletFilterLifeCycle.java:86) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.LifeCycle.promote(LifeCycle.java:115) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.PortletApplicationLifeCycle.promoteDependents(PortletApplicationLifeCycle.java:349) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.LifeCycle.promote(LifeCycle.java:115) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.container.LifeCycle.managedStart(LifeCycle.java:72) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.deployment.PortletApplicationDeployment.install(PortletApplicationDeployment.java:150) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.deployment.PortletApplicationDeployer.add(PortletApplicationDeployer.java:199) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.exoplatform.portal.pc.ExoKernelIntegration.onEvent(ExoKernelIntegration.java:207) [exo.portal.component.pc-3.6.3.Final-redhat-4.jar:3.6.3.Final-redhat-4]
    at org.gatein.wci.ServletContainer.safeFireEvent(ServletContainer.java:319) [wci-wci-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.gatein.wci.ServletContainer.fireEvent(ServletContainer.java:338) [wci-wci-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.gatein.wci.ServletContainer.access$400(ServletContainer.java:56) [wci-wci-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.gatein.wci.ServletContainer$RegistrationImpl.registerWebApp(ServletContainer.java:462) [wci-wci-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.gatein.wci.jboss.JB7ServletContainerContext.start(JB7ServletContainerContext.java:369) [wci-jboss7-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.gatein.wci.jboss.JB7ServletContainerContext.lifecycleEvent(JB7ServletContainerContext.java:223) [wci-jboss7-2.3.1.Final-redhat-3.jar:2.3.1.Final-redhat-3]
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:115) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:3772) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
    at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
    at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
    at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_65]
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_65]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_65]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_65]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_65]
    at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mapViewController': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.jasig.portlet.maps.mvc.portlet.MapViewController.setMapDao(org.jasig.portlet.maps.dao.IMapDao); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.jasig.portlet.maps.dao.IMapDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:287) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1106) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913) [spring-context-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464) [spring-context-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.web.portlet.FrameworkPortlet.createPortletApplicationContext(FrameworkPortlet.java:356) [spring-webmvc-portlet-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.web.portlet.FrameworkPortlet.initPortletApplicationContext(FrameworkPortlet.java:294) [spring-webmvc-portlet-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.web.portlet.FrameworkPortlet.initPortletBean(FrameworkPortlet.java:268) [spring-webmvc-portlet-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.web.portlet.GenericPortletBean.init(GenericPortletBean.java:120) [spring-webmvc-portlet-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at javax.portlet.GenericPortlet.init(GenericPortlet.java:133) [portlet-api-2.0.jar:]
    at org.gatein.pc.portlet.impl.jsr168.PortletContainerImpl.initPortlet(PortletContainerImpl.java:441) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    at org.gatein.pc.portlet.impl.jsr168.PortletContainerImpl.start(PortletContainerImpl.java:296) [pc-portlet-2.4.2.Final-redhat-2.jar:2.4.2.Final-redhat-2]
    ... 28 more
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire method: public void org.jasig.portlet.maps.mvc.portlet.MapViewController.setMapDao(org.jasig.portlet.maps.dao.IMapDao); nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.jasig.portlet.maps.dao.IMapDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:593) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:284) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    ... 45 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [org.jasig.portlet.maps.dao.IMapDao] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:924) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:793) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:707) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredMethodElement.inject(AutowiredAnnotationBeanPostProcessor.java:551) [spring-beans-3.1.0.RELEASE.jar:3.1.0.RELEASE]
    ... 47 more

他们是一个 @Autowired for RestfulJsonMapDaoImpl 类,它有一个接口(interface)类 IMapDao。

Controller 类

package org.jasig.portlet.maps.mvc.portlet;

import java.math.BigDecimal;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;

import javax.portlet.*;
import javax.servlet.http.HttpServletResponse;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.jasig.portlet.maps.dao.IMapDao;
import org.jasig.portlet.maps.model.xml.DefaultLocation;
import org.jasig.portlet.maps.model.xml.MapData;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.portlet.ModelAndView;
import org.springframework.web.portlet.bind.annotation.ResourceMapping;

@Controller
@RequestMapping("VIEW")
public class MapViewController {

    public static final String PREFERENCE_API_KEY = "apiKey";


    final protected Log log = LogFactory.getLog(getClass());
    private IMapDao dao;

    @Autowired(required = true)
    public void setMapDao(IMapDao dao) {
        this.dao = dao;
    }

RestfulJsonMapDaoImpl 类

@Component()
public class RestfulJsonMapDaoImpl implements IMapDao {

    final protected Log log = LogFactory.getLog(getClass());

    private RestTemplate restTemplate;

    @Autowired(required = true)
    public void setRestTemplate(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

IMapDao

public interface IMapDao {


    public MapData getMap(String location);

}

application.xml 文件

 <bean id="restTemplate" class="org.springframework.web.client.RestTemplate">
        <property name="messageConverters">
            <util:list>
                <bean class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"/>
                <bean class="org.springframework.http.converter.xml.Jaxb2RootElementHttpMessageConverter"/>
            </util:list>
        </property>
    </bean>

    <bean class="org.jasig.portlet.maps.dao.RestfulJsonMapDaoImpl" p:restTemplate-ref="restTemplate"/>

我不知道哪里出了问题,但错误是连续的并且相同。如果有人解决这个问题,这对我有很大帮助,提前致谢。

最佳答案

我认为您的 application.xml 中缺少以下代码片段

<mvc:annotation-driven />

以及 servlet 上下文中相应的命名空间。

关于spring - 注入(inject) Autowiring 依赖项失败嵌套异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27898238/

相关文章:

java - Bean 定义是抽象的 独立 Java 应用程序上的错误

java - Hibernate SessionFactory 与 EntityManagerFactory

java - Spring 和 Hibernate - 在 hibernate.cfg.xml 中无需硬编码密码即可使用

java - 如何在注释的帮助下限制用户在整数字段中输入数字?

java - Keycloak - antMatcher 与请求的路径 Java 不匹配

java - portlet.jar 上的类加载器冲突

java - 查询从日期时间字段返回一天的记录

java - JSF 外部链接

java - Liferay 中 Alfresco portlet 的 Portlet 暂时不可用消息

java - 带 spring 标签的 jsp 中没有此类元素异常