|
|
|
Почему ehcache.xml тянется из shared/lib, а не WEB-INF/classes?
|
|||
|---|---|---|---|
|
#18+
Всем здравствуйте! Есть проблема. Я использую такой портал, как jetspeed (он работает как сервлет. Сервер - tomcat 5.5.20). Он использует ehcache, и его ehcache.xml лежит в каталоге <tomcat_home>/webapps/jetspeed/WEB-INF/classes. Много моих приложений также используют ehcache. И мой ehcache.xml лежит в файле <tomcat_home>/shared/lib/my-persistence.jar. Так вот, проблема в том, что web-приложение jetspeed почему-то подтягивает ehcache.xml из shared/lib/my-persistence.jar, а не из webapps/jetspeed/WEB-INF/classes. А мне нужно, чтобы были отдельные настройки ehcahe для jetspeed, и отдельные для моих приложений. Объясните, пожалуйста, как мне это сделать? Всем заранее спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 18:19:14 |
|
||
|
Почему ehcache.xml тянется из shared/lib, а не WEB-INF/classes?
|
|||
|---|---|---|---|
|
#18+
написано здесь убери его из shared клади в каждый web-app ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 18:27:06 |
|
||
|
Почему ehcache.xml тянется из shared/lib, а не WEB-INF/classes?
|
|||
|---|---|---|---|
|
#18+
exppнаписано здесь убери его из shared клади в каждый web-app Вот это ж.па... У меня 30 приложений, каждое из которых использует эту библиотеку. И это только начало проекта. А библиотека эта меняется почти каждый день. Это что же - каждый день ее раскидывать во все эти папки??? И еще один момент. В приведенной вами ссылке написано следующее: Therefore, from the perspective of a web application, class or resource loading looks in the following repositories, in this order: /WEB-INF/classes of your web application /WEB-INF/lib/*.jar of your web application Bootstrap classes of your JVM System class loader classses (described above) $CATALINA_HOME/common/classes $CATALINA_HOME/common/endorsed/*.jar $CATALINA_HOME/common/lib/*.jar $CATALINA_BASE/shared/classes $CATALINA_BASE/shared/lib/*.jar То-есть, здесь написано, что вначале все-таки ищет в папке приложения, а потом уже во всех остальных. Но вы говорите противоположное, и моя реальная ситуация подтвердила то, что Вы сказали. Получается, ошибка в томкетовской документации? Так все же, где же истина? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2007, 19:35:51 |
|
||
|
Почему ehcache.xml тянется из shared/lib, а не WEB-INF/classes?
|
|||
|---|---|---|---|
|
#18+
Не мудри. Положи все в корень проекта <tomcat_home>/webapps/jetspeed/WEB-INF/lib. И все проги, что будут по иерархии ниже(tomcat_home>/webapps/jetspeed/proj1, tomcat_home>/webapps/jetspeed/proj2), получат доступ к твоим библиотекам. Сколькораз вы читали "А сейчас можете откинутся на спинку вашего кресла..."? И вам это не надоело? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 10:03:34 |
|
||
|
Почему ehcache.xml тянется из shared/lib, а не WEB-INF/classes?
|
|||
|---|---|---|---|
|
#18+
Vetal То-есть, здесь написано, что вначале все-таки ищет в папке приложения, а потом уже во всех остальных. Но вы говорите противоположное, и моя реальная ситуация подтвердила то, что Вы сказали. Получается, ошибка в томкетовской документации? Так все же, где же истина? угу ... Код: plaintext похоже на то что сначала ваш класс грузится старшим загрузчиком (из shared) другим приложением, после этого WebAppCL не будет его грузить т.к. он уже есть в кэше родительского класслоадера авторВот это ж.па... У меня 30 приложений, каждое из которых использует эту библиотеку. И это только начало проекта. А библиотека эта меняется почти каждый день. Это что же - каждый день ее раскидывать во все эти папки??? думаю тут проблема решается ant/mavenом или linkами Linux а (или эклипсными) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 11:31:22 |
|
||
|
Почему ehcache.xml тянется из shared/lib, а не WEB-INF/classes?
|
|||
|---|---|---|---|
|
#18+
Вот что нашел в оффициальной документации ( Class loading and Class Loaders ): Loading of ehcache.xml resources If the configuration is otherwise unspecified, ehcache looks for a configuration in the following order: Thread.currentThread().getContextClassLoader().getResource("/ehcache.xml") ConfigurationFactory.class.getResource("/ehcache.xml") ConfigurationFactory.class.getResource("/ehcache-failsafe.xml") Ehcache uses the first configuration found. Note the use of "/ehcache.xml" which requires that ehcache.xml be placed at the root of the classpath, i.e. not in any package. Я вот только все равно не понимаю, какая в этом случае последовательность каталогов, где ищется ehcache.xml? Можете разьяснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 15:16:25 |
|
||
|
Почему ehcache.xml тянется из shared/lib, а не WEB-INF/classes?
|
|||
|---|---|---|---|
|
#18+
думаю отрабатывает этот авторThread.currentThread().getContextClassLoader().getResource("/ehcache.xml") ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2007, 16:14:50 |
|
||
|
|

start [/forum/topic.php?fid=59&tid=2144781]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
43ms |
get tp. blocked users: |
2ms |
| others: | 286ms |
| total: | 416ms |

| 0 / 0 |
