| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Библиотеки в папке сервера или в папке приложения |
| Автор: Ares4322 13.1.2012, 14:35 |
| Доброго времени суток! Есть Tomcat, на котором крутится приложение и других, кроме еще админского, на нем нет и не будет. Я хотел бы загрузить библиотеки приложения в папку томката, чтобы не гонять их по сети при загрузке приложения. Какие подводные камни могут быть у такого решения? |
| Автор: Stolzen 13.1.2012, 14:48 |
| Можно напороться на jar hell, но при должной аккуратности все будет нормально. |
| Автор: Ares4322 13.1.2012, 15:05 |
| А в каком случае это будет? Если я на девел-машине собрал с одними библиотеками, а запускаю приложение с другими? Я так понимаю, если так не делать, то все будет гуд. Я прав? |
| Автор: jk1 14.1.2012, 08:25 | ||
Для загрузки классов из папки сервера и из папки приложения будут использоваться разные загрузчики классов: 1. Классы из папки приложения будут видеть классы из папки сервера, а вот обратное не верно. Если зависимости только в одну сторону, то это не составит проблем. 2. Два одинаковых класса загруженных разными загрузчиками с точки зрения JVM считаются разными. То есть, если случайно один и тот же класс окажется в двух местах одновременно, то могут возникать проблемы каста к собственному классу и тому подобные вещи. 3. Можно серьезно накосячить с Apache Commons Logging, который вообще плохо относится к раскидыванию собственных классов по разным загрузчикам. И, помимо прочего, Вы усложняете процедуру установки. В папку lib сервера библиотеки сами при деплое не попадут. |
| Автор: Ares4322 15.1.2012, 17:18 |
| Про то,что классы разные,если разные за загрузчики- я знал. Тогда ,видимо, оставлю, как есть. |