struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeroen De Ridder <voetsjo...@gmail.com>
Subject Re: @Transactional Spring Annotation in a Struts2 Action does not work
Date Fri, 01 May 2009 02:22:08 GMT
You really shouldn't be making your Struts 2 actions @Transactional. 
Doing that causes Spring to create a proxy so it can put some extra 
transaction-handling logic between the method call and the actual 
method. The thing is, Struts 2 and OGNL rely heavily on reflection on 
the action classes which simply does not work at all with the proxies 
created by Spring.

Regardless, making your actions @Transactional means mixing persistence 
concerns with controller logic in the same class. You should consider 
keeping the two separated. For example, the service approach is a good 
start: http://struts.apache.org/2.0.14/docs/struts-2-spring-2-jpa-ajax.html.

> Yes, I am. Everything works fine when I don't try to use Spring
> transactional AOP!
>
> Mauricio
>
> On Thu, Apr 30, 2009 at 9:43 PM, Dave Newton <newton.dave@yahoo.com> wrote:
>
>   
>> Mauricio Aniche wrote:
>>
>>     
>>> I am using Struts2+Spring+JPA/Hibernate. When I use the @Transactional to
>>> mark an execute() method in a Struts2 Action, the action stops working
>>> properly (i.e. the attributes in the action are not automatically setted).
>>> It does not work with Spring AOP transactions as well.
>>>
>>> In my struts.config I setted the following constant:
>>> ----
>>> <constant name="struts.objectFactory" value="spring" />
>>>
>>>       
>> You're using the Spring plugin, correct?
>>
>> Dave
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>>     
>
>   


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message