OK a reply to myself, since I fixed this one.
Add start="EAGER" to both the cache-container and the cache.
<cache-container default-cache="repl" jndi-name="infinispan/container" start="EAGER">
<replicated-cache name="repl" mode="ASYNC" start="EAGER" batching="true" jndi-name="MyCache">
N.B. in JNDI the container and the cache are NOT related, infact you can not make the Cache a sub-name of the container, it must have its own name.
The above config is accessible with
If anything fails on boot, the names do not appear in JNDI, but with EAGER they and a valid config they appear directly on boot and can be looked up in Spring.
<jee:jndi-lookup id="infinispan" jndi-name="java:jboss/MyCache" />
I was going to provide an answer to this, but you seem to have discovered the solution by yourself.