|
|
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
Привет всем. Есть проблема при загрузки класса. Я написал свой ClassLoader загрузки из каталога сервера. Для работы с базой использую hibernate, класс загружается все хорошо, но при вызове выдает ошибку что не находит класс org.hibernate.Session, храниться в jar архиве, но ведь все jar архивы при компиляции записываются в classpath? Или я путаю? Подскажите что можно сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 14:29:32 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
meqonно ведь все jar архивы при компиляции записываются в classpath? Абсолютное непонимание концепции classpath. Ничего при компиляции туда не записывается. Это собирательное выражение для списка всех путей для поиска классов. Переменная окружения CLASSPATH почти нигде не искпользуется classpath используется либо как параметр запуска java.exe либо как Class-Path: в META-INF/manifest.mf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 14:38:56 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
Теперь понят. Но как тогда при загрузить кода использующего стороннюю библиотеку, код которой в jar архиве? Можно ли при загрузки моего класса задать мой загрузчик? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 14:48:52 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
загрузить код* ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 14:49:24 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
meqonТеперь понят. Но как тогда при загрузить кода использующего стороннюю библиотеку, код которой в jar архиве? Можно ли при загрузки моего класса задать мой загрузчик? Можно. А если вы ещё по-русски объясните чего хотите добиться, то можно обсудить и о то как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 15:01:57 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
Как тогда загрузить код использующий стороннии библиотеки(например hibernate), если использую свой загрузчик то он не находи класс org.hibernate.Session. Как в этом случае быть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:16:45 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
meqonКак тогда загрузить код использующий стороннии библиотеки(например hibernate), если использую свой загрузчик то он не находи класс org.hibernate.Session. Как в этом случае быть? a) Указать родительский загрузчик, который знает о либах. б) В своём загрузчике организовать поиск и по библиотекам тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2012, 17:18:55 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
Blazkowicza) Указать родительский загрузчик, который знает о либах. б) В своём загрузчике организовать поиск и по библиотекам тоже. Если существует загрузчик, который знает о либах, то надо использовать его в качестве родительского. Иначе классы с одним и и тем же именем, тот же org.hibernate.Session, загруженные разными загрузчиками, будут разными и несовместимыми. В результате будут рантайм ошибки когда в переменную типа Session не удасться присвоить значение типа Session. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2012, 07:34:21 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
Пошел по методы а) но теперь при вызове метода выдаеться исключение nosuchmethoderror. В чем может быть проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 17:50:56 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
meqonПошел по методы а) но теперь при вызове метода выдаеться исключение nosuchmethoderror. В чем может быть проблема? Разные версии библиотек. Полный текст со стектрейсом покажите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.03.2012, 17:55:03 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
Вообщем, использую tomcat пишу web сервис. Как уже писал пошел по пути а). Библиотека hibernate лежит в WEB-INF/lib. Написал загрузчик. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. Вызываю так: ServerClassLoader cl = new ServerClassLoader(<путь где лежат файлы>, ClassLoader.getSystemClassLoader()); При загрузке org/hibernate/Session: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.03.2012, 22:38:27 |
|
||
|
Проблемы с ClassLoader
|
|||
|---|---|---|---|
|
#18+
meqonВообщем, использую tomcat пишу web сервис. Как уже писал пошел по пути а). Библиотека hibernate лежит в WEB-INF/lib. Написал загрузчик.Можно узнать, зачем, если для (отдельных) class-ов есть предопределённое место? Это если вам так неймётся, что вы распаковали jar. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2012, 17:59:12 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=37692380&tid=2132357]: |
0ms |
get settings: |
18ms |
get forum list: |
19ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
46ms |
get topic data: |
15ms |
get forum data: |
5ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 365ms |
| total: | 556ms |

| 0 / 0 |
