ルート コンテキスト ファイル (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" />
applicationContext.xml Bean:
<bean id="myInfoFactory"
class="org.wcw.factory.MyInfoFactory" />
私が得るエラーは
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'myInfoFactory' is defined
web.xml
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml</param-value>
</context-param>
ポートレット.xml
<portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class>
<init-param>
<name>contextConfigLocation</name>
<value>/WEB-INF/subContext.xml</value>
</init-param>
myInfoFactory Bean 宣言を applicationContext.xml から subContext.xml に移動すると、その例外はスローされなくなります。applicationContext.xml で宣言されているときに非表示になる理由がわかりません。環境が原因で、Bean を subContext.xml に永続的に移動できません。MyInfoFactory クラス
public class MyInfoFactory {
private Logger log;
@Autowired
private PortletRequest request;
...
public MyInfo getInstance(PortletRequest request) {
}
...
}