|
|
|
Jetty как поставить свой обработчик ErrorPage? (NoClassDefFoundError)
|
|||
|---|---|---|---|
|
#18+
Делаю по инструкции http://www.eclipse.org/jetty/documentation/current/custom-error-pages.html jetty-env.xml : Код: xml 1. 2. 3. 4. 5. 6. 7. 8. класс хандлера: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Класс org.eclipse.jetty.server.handler.ErrorHandler содержится в jar-нике lib/jetty-server-9.1.0.v20131115.jar и его суперклассы в lib/jetty-util-9.1.0.v20131115.jar При запуске java -jar start.jar --list-config, можно видеть строчки: ... 9: 9.1.0.v20131115 | ${jetty.home}/lib/jetty-server-9.1.0.v20131115.jar ... 11: 9.1.0.v20131115 | ${jetty.home}/lib/jetty-util-9.1.0.v20131115.jar То есть, либы должны видеться. Но при запуске jetty получаю java.lang.NoClassDefFoundError: org/eclipse/jetty/server/handler/ErrorHandler При этом если jetty-env.xml конфигурирую так, то экзепшена нету, что косвенно подтверждает факт того, что jar с необходимым классом загрузился: Код: xml 1. 2. 3. 4. 5. 6. 7. Пробовал тупо перекинуть свой CoolErrorHandler.class из war внутрь jetty-server-9.1.0.v20131115.jar -- работает, нету экзепшена. И c последним jetty 2014 та же проблема. При этом если запускаю jetty так: # java -verbose:class -jar start.jar |grep Error то среди вывода есть строчка: [Loaded org.eclipse.jetty.server.handler.ErrorHandler from file:/home/chabapok/jetty-distribution-9.1.0.v20131115/lib/jetty-server-9.1.0.v20131115.jar] То есть грузится же! Такое впечатление, что jvm не позволяет отнаследоваться от класса из другого jar. Но я уже пробовал не только отнаследоваться, но и создать инстанс ErrorHandler в сервлете, в обработчике put. Тоже не находит. ЧЯДНТ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 18:40 |
|
||
|
Jetty как поставить свой обработчик ErrorPage? (NoClassDefFoundError)
|
|||
|---|---|---|---|
|
#18+
http://www.eclipse.org/jetty/documentation/current/jetty-classloading.html]Загрузчик и классов ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 19:25 |
|
||
|
Jetty как поставить свой обработчик ErrorPage? (NoClassDefFoundError)
|
|||
|---|---|---|---|
|
#18+
Уже читаю/пробую, но пока добиться нужного эффекта не поулчается. добавил в jetty-env.xml такое: Код: xml 1. 2. 3. но это не помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 19:39 |
|
||
|
Jetty как поставить свой обработчик ErrorPage? (NoClassDefFoundError)
|
|||
|---|---|---|---|
|
#18+
Создал в webapps файл ROOT.xml следующего содержания: Код: xml 1. 2. 3. 4. 5. 6. 7. Заработало, но сломался автодеплой. Теперь чтобы jetty подхватил новый war, нужно перезапускать сервер. Подскажите, как это починить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 20:59 |
|
||
|
Jetty как поставить свой обработчик ErrorPage? (NoClassDefFoundError)
|
|||
|---|---|---|---|
|
#18+
Выяснил вот что: если файл ROOT.xml перезаписать, то jetty подхватывает новый war. Но для этого просто скопировать тот же контент недостаточно, надо где-нибудь внутри ROOT.xml что-нибудь поменять, например добавить пробел. То есть можно задеплоить, добавив в скрипт после копирования war так: echo " ">>ROOT.xml извращение, конечно, но лучше пока не придумал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.02.2014, 23:58 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38549295&tid=2127703]: |
0ms |
get settings: |
5ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
152ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 420ms |

| 0 / 0 |
