Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从根上下文访问bean时Spring NoSuchBeanDefinitionException_Java_Spring_Dependency Injection_Javabeans - Fatal编程技术网

Java 从根上下文访问bean时Spring NoSuchBeanDefinitionException

Java 从根上下文访问bean时Spring NoSuchBeanDefinitionException,java,spring,dependency-injection,javabeans,Java,Spring,Dependency Injection,Javabeans,我有一个根上下文文件(applicationContext.xml)和一个子上下文文件(subContext.xml) 当我尝试从subContext.xml中的applicationContext.xml访问bean时,会出现NoSuchBeanDefinitionException subContext.xml bean: <bean id="myInfo" factory-bean="myInfoFactory" factory-method="getInstance" sc

我有一个根上下文文件(applicationContext.xml)和一个子上下文文件(subContext.xml)

当我尝试从subContext.xml中的applicationContext.xml访问bean时,会出现NoSuchBeanDefinitionException

subContext.xml bean:

<bean id="myInfo" factory-bean="myInfoFactory"
    factory-method="getInstance" scope="request">
    <aop:scoped-proxy proxy-target-class="true" />
<bean id="myInfoFactory"
    class="org.wcw.factory.MyInfoFactory" />
web.xml

 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>

问题不在于配置本身,而在于您试图在何处恢复该特定bean

如果尝试从父应用程序上下文中定义的bean(侦听器(ApplicationContext.xml)中注入子ApplicationContext(subContext.xml)中定义的请求作用域bean,您将无法“看到”该特定bean

这种关系在另一个方向起作用。子容器实际上可以看到父容器中定义的每个容器


一种解决方案是将请求代理移动到父级,因为它们是代理,您可以这样做。但是,如果您尝试使用该特定bean时没有可用的请求,则会引发运行时。

请说明如何初始化上下文以及子上下文的含义。是不是
import
ed?@SotiriosDelimanolis我已经更新了帖子。谢谢。你能展示一下
MyInformFactory
类吗?至少有一副骷髅。这不应该发生。我已经为MyInfoFactory添加了框架。我没看到那门课上发生什么不光彩的事。只是一些普通属性和属性!
 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
    <init-param>
        <name>contextConfigLocation</name>
        <value>/WEB-INF/subContext.xml</value>
    </init-param>
public class MyInfoFactory {
private Logger log;
@Autowired
private PortletRequest request;

...
public MyInfo getInstance(PortletRequest request) {

  }
...

}