How to use 3rd party libraries in glassfish?

后端 未结 6 760
余生分开走
余生分开走 2020-12-03 04:00

I need to connect to a MongoDB instance from my EJB3 application, running on glassfish 3.0.1. The Mongo project provides a set of drivers, and I\'m able to use them in a sta

相关标签:
6条回答
  • 2020-12-03 04:24

    You could put shared libs to lib/ext of your domain. commons-logging and jdbc drivers are often added in this domain path.

    Common Class Loader

    GlassFish v2 has a well defined Class Loader hierarchy which identifies the common class loader as the proper way to deal with shared libraries. So to make a long story short, putting you libraries and other framework JARs in domains/domain1/lib is all you need to do.

    lib/, not lib/ext

    The person asking me the question had tried putting the libraries in domains/domain1/lib/ext which triggered an interesting ClassNotFoundError for core Java EE classes such as javax.servlet.http.HttpServlet. Shing Wai Chan was quick to explain that domains/domain1/lib/ext is part of -Djava.ext.dirs which makes any of its JARs be considered as a JDK extension which means web app frameworks placed there will be loaded before webcontainer implementation classes as they are higher up in the classloader delegation chain.

    0 讨论(0)
  • 2020-12-03 04:28
    1. Go to your Glassfish doamin directory.

    2. Then go to lib folder.

    3. Place the libraries there.

    4. Restart the glassfish and run.

    (Ex) C:\glassfish3\glassfish\domains\domain1\lib

    0 讨论(0)
  • 2020-12-03 04:30

    Glassfish has own Class loader hierarchy, http://docs.oracle.com/cd/E19798-01/821-1752/beade/index.html
    I face the same problem in my project and then I put all my Third party libraries in domain/domain1/lib and my problem solved. On other way round, my problem was solved too by putting libraries in glassfish/lib.

    0 讨论(0)
  • 2020-12-03 04:33

    Hmm... Shouldn't you put this "driver" in glassfishv3/glassfish/domains/domain1/lib/ext?

    0 讨论(0)
  • 2020-12-03 04:37

    Try to put Your libs into $GF_HOME/glassfish/modules/. It's dirty, but will work.

    0 讨论(0)
  • 2020-12-03 04:38

    In my case I was using Oracle Express Edition 11gR2 and Glassfish 3.1.2 and the ONLY way that works in my case was putting the ojdbc6 in:

    C:\Program Files\glassfish-3.1.2.2\glassfish\lib
    
    0 讨论(0)
提交回复
热议问题