Here is the link to the feature request.

https://issues.apache.org/struts/browse/WW-2765

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


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


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

Reply via email to