If you are developing your web applications in Glassfish and running your production code in other Application Servers (IBM in my case) ,you would like to provide your own version of
JSF,JPA ..etc by yourself than relying on container. Or you would provide your own libraries if you want to use latest JEE standards. The way we tell IBM class loader to load classes from application first than container is by setting Parent Last rather than Parent First. By default glassfish also looks for classes in the container than the application, if you want to override that, provide a glassfish-web.xml in your WEB-INF folder and add

  <class-loader delegate="false"/>

Restart your application now, it will pick up the libraries from your WAR now.