If the versions of libraries your app uses match the application server's closely, I usually resort to using the app server's libraries. This isn't really portable.
You can duplicate them, but if you do, you need to configure your .ear to isolate out the JBoss ones in favor of your own. Otherwise, the behavior is unspecified (likely to cause trouble). Use "java2ParentDelegation=false "