That's expected, JBoss already provide the javax.transaction API as part of Java EE, so it will be provided to your application as well as the one you have added to your application. That's why it is a bad practice to add JavaEE jars in your application. It should be in the provided scope of maven.