It would look something like this. Since the EJB invocation is the "real work" I've used it as the target instead of one of the interceptors.
Code:
<bean id="proxyTemplate" abstract="true" class="org.springframework.aop.framework.ProxyFactoryBean">
<property name="interceptorNames">
<list>
<idref local="interceptor1"/>
<idref local="interceptor2"/>
<idref local="interceptor3"/>
</list>
</property>
</bean>
<bean id="slsbTemplate" abstract="true" class="org.springframework.ejb.access.SimpleRemoteSlsbInvokerInterceptor">
<property name="jndiEnvironment">
<props>
<!-- Here you put your JNDI connection properties -->
<entry key=""></entry>
</props>
</property>
<!-- Any other properties you may want to change from the defaults. i.e. lookupHomeOnstartup -->
</bean>
<!-- Your beans go here -->
<bean id="myObject" parent="proxyTemplate>
<property name="proxiedInterfaces" value="com.mycompany.MyManager"/>
<property name="target">
<bean parent="slsbTemplate>
<property name="jndiName" value="ejb/MyObject"/>
</bean>
</property>
</bean>
<!-- Definition of interceptor1, 2 and 3 should go here -->
Another way (and thinking about it probably simpler) would be use a BeanNameAutoProxyCreator:
Code:
<bean id="ejb" abstract='true' class="org.springframework.ejb.access.SimpleRemoteStatelessSessionProxyFactoryBean" lazy-init="true">
<property name="jndiTemplate" ref="self-jndi"/>
<property name="refreshHomeOnConnectFailure" value="true"/>
</bean>
<bean id="Foo" parent="ejb" lazy-init="true">
<property name="jndiName" value="FooHome/>
<property name="businessInterface" value="com.enttek.Foo"/>
</bean>
<bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<!-- This can be either a list of exact names or wildcards or both
<idref local="Foo"/>
<value>myBean*</value>
</property>
<property name="interceptorNames">
<list>
<idref local="interceptor1"/>
<idref local="interceptor2"/>
<idref local="interceptor3"/>
</list>
</property>
</bean>