[ 
https://issues.apache.org/struts/browse/WW-2336?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Musachy Barroso resolved WW-2336.
---------------------------------

    Resolution: Not A Problem

This is a Spring configuration issue, please post your question on the users 
mailing list

> @Resource annotation not used with beans defined by id
> ------------------------------------------------------
>
>                 Key: WW-2336
>                 URL: https://issues.apache.org/struts/browse/WW-2336
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Plugin - Spring
>    Affects Versions: 2.0.11
>         Environment: spring 2.5, tomcat 6, java se 1.5, eclipse 3.3.0
>            Reporter: Sébastien Derivaux
>            Priority: Minor
>             Fix For: Future
>
>
> There seems to be a problem with the spring interaction.
> Consider the following scenario :
> A action class using the @Resource annotation :
> public class ListValuableAction {
>       @Resource 
>       private StockManager    stockManager;
> They are mapped in the applicationContext.xml  as beans :
>     <bean id="listValuableAction"             scope="prototype"       
> class="gestion.view.actions.ListValuableAction"/>
>     <bean id="stockManager"           class="capitalism.dao.StockManager"/>
> In the struts.xml I have:
> <action name="*" class="capitalism.view.actions.{1}Action" >
>       <result>/WEB-INF/views/{1}.jsp</result>
> </action>
>               
> <action name="toto" class="listValuableAction" >
>       <result>/WEB-INF/views/ListValuable.jsp</result>
> </action>
> The first action works fine, the stockManager bean is set in the 
> ListValuableAction instance.
> The second does not work. The stockManager bean is NOT set in the 
> ListValuableAction instance.
> I try to play with scope="prototype", removing it. Does the same.
> My unit tests complete fine using the bean listValuableAction, the 
> stockManager field is always set, so i'm quite sure is not a problem with 
> Spring.
> If I inject in the applicationContext.xml :
>     <bean id="listValuableAction"             scope="prototype"       
> class="capitalism.view.actions.ListValuableAction">
>       <property name="stockManager" ref="stockManager"/>
>     </bean>
> it works.
> In conclusion the problem arise only when using a bean declared by id which 
> use the @Resource annotation.
> Using @Resource in a bean declared by class name works.
> Using a bean declared by id which injections are in the 
> applicationContext.xml works.
> Hope it helps.
> PS : Sorry if my English is a little poor.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to