I've been getting errors like:

[Servlet Error]-[context]: Failed to load servlet: org.springframework.beans.factory.BeanDefinitionSt oreException: Line 207 in XML document from resource [/WEB-INF/applicationContext.xml] of ServletContext is invalid; nested exception is org.xml.sax.SAXParseException: Attribute value "${jdbc.service.xaManager.beanName}" of type IDREF must be a name.
org.xml.sax.SAXParseException: Attribute value "${jdbc.service.xaManager.beanName}" of type IDREF must be a name.
at org.apache.xerces.parsers.DOMParser.parse(DOMParse r.java:235)
If you see this, the answer is that your bean reference cannot be 'local'. So it should look like this:

<bean id="baseTxProxy" lazy-init="true" class="org.springframework.transaction.interceptor .TransactionProxyFactoryBean">
<property name="transactionManager">
<ref bean="${jdbc.service.xaManager.beanName}"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

not this:

<bean id="baseTxProxy" lazy-init="true"
class="org.springframework.transaction.interceptor .TransactionProxyFactoryBean">
<property name="transactionManager">
<ref local="${jdbc.service.xaManager.beanName}"/>
</property>
<property name="transactionAttributes">
<props>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

Underscoring the recommended practice of not using local refs. :oops:

HTH