I use a similar setup from time to time and one of my main problems with this is XMHell - you set up everything in XML and whenever something doesn&#x27;t work, it&#x27;s hard to find help because you&#x27;ll get a stack trace instead of &quot;WARNING: &lt;xmlpath&gt; seems to be incorrect&quot; or &quot;Module X: When using feature Y with setting Z, you also need to define A, B and C&quot;<p>A recent example is trying to make Hibernate work via postgis and postgresql as a datasource in Wildfly. We weren&#x27;t able to solve it, we could only work around it.<p>Finally, if you need some behavior off the beaten path, you&#x27;ll have to use lots of annotated Java which makes it easy if you know all this but it&#x27;s hard to read a Java file with 10 annotations for classes and methods, simply because you don&#x27;t know what happens when.<p>To summarize, it&#x27;s an ok solution if you have a Java guy with lots of experience in all this (luckily we had one). Otherwise you gonna have to learn a lot (as in <i>by heart</i>) because you can&#x27;t really reason about XML and annotations (as you could, e.g., when composing services in Clojure).