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-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org