struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Timothy Orme <to...@genome.med.harvard.edu>
Subject Re: Incorrect Bean Injected
Date Fri, 16 Jan 2009 16:41:19 GMT
So scratch that, I figured out that Struts is set to autowire by default with the spring plugin.

In my struts.xml I have:

<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory"
/>
<constant name="struts.objectFactory.spring.autoWire" value="type" />

And am now autowiring by type instead of name. However, does anyone know how to turn off autowiring
altogether?
I've seen a feature request for this, but it hasn't been filled yet. Has anyone devised a
workaround?

Thanks,
Tim Orme

Timothy Orme wrote:
> This seems really strange to me, but I don't know the inner workings of 
> struts enough to know if it's expected behavior.
> 
> I'm using Struts 2.1.2 and spring 2.5.3
> 
> I have a 2 service beans that have the same name, but depending on the 
> action, one might be used instead of the other.
> 
> 
> <bean id="hibernateUserService" 
> class="hibernate.service.impl.LoginUserServiceImpl">
> </bean>
> 
> <bean id="sqlUserService" class="sql.service.impl.LoginUserServiceImpl">
> </bean>
> 
> <bean id="submitQuoteAction" class="action.quotes.SubmitQuoteAction">
>     <property name="userService" ref="hibernateUserService" />
> </bean>
> 
> <bean id="registerUserAction" class="action.users.RegisterUserAction">
>     <property name="userService" ref="sqlUserService"/>
> </bean>
> 
> So I have 2 beans, each serving a similar purpose, so named the same, 
> but used in different actions.
> 
> What happens is, at the webapp startup, I see the beans get injected 
> into the actions fine. The types are correct, and the property is set. 
> The server starts without any issues. However, whats strange is that 
> when I try and go to either action I get a null pointer for the 
> userService objects in both actions.
> 
> I did notice though, that if I name one of the service beans to just 
> "userService" instead of say, "hibernateUserService" then one of the 
> actions will work correctly, while the other will fail saying that it 
> cant cast sql.service.impl.LoginUserServiceImpl to 
> hibernate.service.impl.LoginUserServiceImpl.
> 
> It seems then that Struts is wiring the properties by bean name and 
> overriding the beans that I have specified in my applicationContext. 
> Does anyone know what would cause this or how to work around it?
> 
> Thanks,
> Tim Orme
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Mime
View raw message