This little error is causing me some fun:

org.springframework.core.ConstantException: Field 'ISOLATION_' not found
in class [org.springframework.transaction.TransactionDefinition]

To explain, I am trying to use a POJO in a lightweight container and that
POJO requires some injected dependencies that are configured using Spring
2.0.

My lw-component is deployed in a service unit using the <sm:serviceunit
id="jbi"> notation and the Spring 2.0 config for the dependencies is then
imported within the same servicemix.xml using <import>.

This imported file is using AOP to wrap my injected bean in a
transactional context and Spring is obviously getting close enough to
doing this to generate the above error message.

The reason for the error is that the Spring 2.0.1 version of
TransactionDefinition declares ISOLATION_ but Spring 1.2.4 does not.
Within ServiceMix, it appears that XBean defaults to Spring 1.2.4 classes
rather than 2.0.1 and I cannot see how to prevent this.

I have spent a pleasant evening trawling through the innards of XBean and
can see that it acts as a pre-processor to Spring. Unfortunately, at the
point at which a service unit is loaded in ServiceMix, the classpath for
XBean is already defined and I can't see a way to influence the flavour
of Spring to be used to process an individual service unit.

I see that XBean has packages for a variety of Spring flavours, so I
guess the question is "how do I make it use the one I want?".

Thanks,

Terry

Reply via email to