Hi Luis, But a Listener, which is defined in tomcat\lib, cannot access the shared\lib folder files.
Regards, Akram. On Wed, Apr 17, 2019 at 12:43 PM Luis Rodríguez Fernández <uo67...@gmail.com> wrote: > Hello Akram, > > If you can not put the jars inside each webapp perhaps you could define a > shared.loader in your catalina.properties [1]. It works for us. > > Hope it helps, > > Luis > > [1] > > https://tomcat.apache.org/tomcat-9.0-doc/class-loader-howto.html#Advanced_configuration > > > > > > > > El mar., 16 abr. 2019 a las 23:21, Christopher Schultz (< > ch...@christopherschultz.net>) escribió: > > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA256 > > > > Akram, > > > > On 4/16/19 16:21, Akram Hussain wrote: > > > Hi Christopher, > > > > > > I have almost 27-30 apps in my tomcat. > > > > > > Do I need to declare in every applications's META-INF\context.xml. > > > > Yes. If every application needs those libraries, then you'll need to > > configure them. Just like you had to configure your custom class > > loader for each application in the past. > > > > Why not simply put the JAR files into the applications as usual? Then > > each web application is self-contained and you don't have to go > > through all these back-flips. > > > > > And also I have a listener class which is in tomcat\lib folder, > > > which also access these shared classes using CustomSharedLibrary. > > > > Then you can put all the libraries into Tomcat's lib/ directory and > > you don't have to do any of this. > > > > > How can I access those shared libraries in listener which is in > > > tomcat\lib folder? > > > > What does your Listener do? You might not even need it... > > > > - -chris > > > > > On Wed, Apr 17, 2019 at 1:02 AM Christopher Schultz < > > > ch...@christopherschultz.net> wrote: > > > > > > Akram, > > > > > > On 4/16/19 12:41, Akram Hussain wrote: > > >>>> I have gone through it, But it was not clear to me. > > >>>> > > >>>> If an example is provided, how to pass resources to > > >>>> SharedClassLoader, it could be helpful. > > > > > > If you configure something like this in your META-INF/context.xml: > > > > > > <Resources> <PostResources webAppMount="/WEB-INF/classes" > > > base="/path/to/your/shared/libraries" > > > className="org.apache.catalina.webresources.DirResourceSet" /> > > > </Resources> > > > > > > That should allow your application to load JAR files from your > > > /path/to/your/shared/libraries directory. > > > > > > You should completely remove your custom class loader. Completely. > > > > > > -chris > > > > > >>>> On Tue, Apr 16, 2019 at 7:57 PM Christopher Schultz < > > >>>> ch...@christopherschultz.net> wrote: > > >>>> > > >>>> Akram, > > >>>> > > >>>> On 4/16/19 06:29, Akram Hussain wrote: > > >>>>>>> I have Custom SharedClassLoader in Tomcat 7 to load > > >>>>>>> shared library jars, which is used by different > > >>>>>>> applications in that tomcat. We migrated to Tomcat 9, > > >>>>>>> now it is not working. How to achieve the same > > >>>>>>> functionality in tomcat 9. > > >>>> > > >>>> Have a look at the <Resources> which should be able to do > > >>>> what you need without any custom code: > > >>>> > > >>>> http://tomcat.apache.org/tomcat-9.0-doc/config/resources.html > > >>>> > > >>>>>>> > > >>>> > > In Tomcat 9 it expects resources to be passed. I don't find > > >>>>>>> any sample Code on how to populate resources. > > >>>>>>> > > >>>>>>> I tried like below > > >>>>>>> > > >>>>>>> public CustomSharedClassLoader(ClassLoader parent) > > >>>>>>> throws Exception { super(parent); //The below three > > >>>>>>> lines are added by me to work for Tomcat 9. > > >>>>>>> StandardRoot standardRoot = new StandardRoot(); > > >>>>>>> standardRoot.addPreResources(new DirResourceSet()); > > >>>>>>> setResources(standardRoot);// End for tomcat 9 > > >>>>>>> changes. > > >>>>>>> > > >>>>>>> for (URL urlForJars : getClassPath(SHARED_LIB)) { > > >>>>>>> addURL(urlForJars); } start(); } > > >>>>>>> > > >>>>>>> It didn't work. > > >>>>>>> > > >>>>>>> public class CustomSharedClassLoader extends > > >>>>>>> WebappClassLoader{//Which takes shared folder libarary, > > >>>>>>> it returns those classes.} > > >>>> > > >>>> You should be able to ditch your custom ClassLoader > > >>>> entirely. > > >>>> > > >>>> -chris > > >>>>> > > >>>>> ------------------------------------------------------------------ > > - --- > > >>>>> > > >>>>> > > > > > >>>>> > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > >>>>> For additional commands, e-mail: > > >>>>> users-h...@tomcat.apache.org > > >>>>> > > >>>>> > > >>>> > > >> > > >> --------------------------------------------------------------------- > > >> > > >> > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > >> For additional commands, e-mail: users-h...@tomcat.apache.org > > >> > > >> > > > > > -----BEGIN PGP SIGNATURE----- > > Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/ > > > > iQIzBAEBCAAdFiEEMmKgYcQvxMe7tcJcHPApP6U8pFgFAly2RzgACgkQHPApP6U8 > > pFilIA/+NvG9+sG1tPbWyAXvy9bwGnRATgTZqxGGWvGZ2XL2Knkt+lPaoh7Vtum9 > > jYm4ZUIWNrkg4APxCwHXnfNlkLEF36igANlytDlBBUoVKBqEgngWUqR2w19yeRma > > 8GS7YbDS6bUJ/KQTBEkeTeyf7EdLHVfJwrnKZ6qxV2QmC+IBwCr7I2vlWwx59qac > > CqCL97FzRjtwDa6sHsC5PYsdu0fy8z4NzI4Ro4bcKNjDnvsQ0LSaKR0WM6OlaHAW > > wFayoV/oUK8uRbDrS3q4pOtAnLxwF+CVrk0x7clpyPnqlSO0TIebZ+ejOEe4lsHK > > gC33pK+vpKtl3d68WNf4aZfjXdrqsnF0IvnPPayAThVysHHOfJqGyYL2wdtmFru9 > > vOKKIPqM4TT6V0BWZiX4lrE/kbF8c4KhpdtdIkFyf8KqWtezYBZIjIlEEaoiqlSO > > KWdnrxRQ3Y2gJMUBAUDK0CiEl8Rw/L030CUmeLabNvN8MORpva2GOIGUk2wUVRwB > > gSWShGDgaUC1KsdEPNf8Sawb9J1yVOAxdQH2U05Z0cf2gMcmHVgrJQ0+mSZMvvhJ > > CiEumW37P4Z0jkcKyeISrE0T7p90rvaXQLrwSNIqTuzDKQXhmUXWUofktdH51541 > > WQvgsg15JV3OH13xtjftrQDLZwZ8HYrn47kpTlOXrpfM0ITzvuM= > > =N2Dl > > -----END PGP SIGNATURE----- > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > > For additional commands, e-mail: users-h...@tomcat.apache.org > > > > > > -- > > "Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better." > > - Samuel Beckett >