You can "de-autowire" an action by creating an XML configuration for it. Then you can use the spring name instead of the class in the action config
<bean id="myAction" class="com.actions.MyAction"> <property name="myManager" ref="userService"/> </bean> <bean id="myOtherAction" class="com.actions.MyAction"> <property name="myManager" ref="otherUserService"/> </bean> struts.xml <action name="something" class="myAction">...</action> <action name="somethingElse" class="myOtherAction">...</action> That way you get the benefit of autowiring for your simple stuff and you can use XML config for your more exotic Spring injections. Relph,Brian wrote: > > > Did you try setting the value="none"? > > > Brian Relph > > -----Original Message----- > From: Timothy Orme [mailto:to...@genome.med.harvard.edu] > Sent: Friday, January 16, 2009 10:41 AM > To: Struts Users Mailing List > Subject: Re: Incorrect Bean Injected > > 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 > > ---------------------------------------------------------------------- > CONFIDENTIALITY NOTICE This message and any included attachments are from > Cerner Corporation and are intended only for the addressee. The > information contained in this message is confidential and may constitute > inside or non-public information under international, federal, or state > securities laws. Unauthorized forwarding, printing, copying, distribution, > or use of such information is strictly prohibited and may be unlawful. If > you are not the addressee, please promptly delete this message and notify > the sender of the delivery error by e-mail or you may call Cerner's > corporate offices in Kansas City, Missouri, U.S.A at (+1) (816)221-1024. > > --------------------------------------------------------------------- > To unsubscribe, e-mail: user-unsubscr...@struts.apache.org > For additional commands, e-mail: user-h...@struts.apache.org > > > -- View this message in context: http://www.nabble.com/Incorrect-Bean-Injected-tp21502777p21504674.html Sent from the Struts - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: user-unsubscr...@struts.apache.org For additional commands, e-mail: user-h...@struts.apache.org