Ok that's what I figured. I have already extended the StrutsSpringObjectFactory 
to do this.

Thanks,
Tim

Musachy Barroso wrote:
Not any time soon. You can either build from trunk, or create your own
factory that extends StrutsSpringObjectFactory, and overwrite the
methods(2) with the fix (quick and dirty solution).

musachy

On Fri, Jan 16, 2009 at 2:50 PM, Timothy Orme
<to...@genome.med.harvard.edu> wrote:
Excellent, thank you! Just out of curiosity, what would the release timeline
be on this?

Thanks,
Tim

Musachy Barroso wrote:
I looked at the code and it cannot be set to none. I fixed it in
struts and xwork trunks, so in the future you will be able to set
"struts.objectFactory.spring.autoWire" to "no". The spring value is
AutowireCapableBeanFactory.AUTOWIRE_NO, so I followed the pattern and
used "no" instead of "none".

musachy


On Fri, Jan 16, 2009 at 11:41 AM, Timothy Orme
<to...@genome.med.harvard.edu> 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






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

Reply via email to