Калитка на GlassFish v3 - PullRequest
       4

Калитка на GlassFish v3

4 голосов
/ 28 ноября 2010

Я надеялся, что это будет проще, потому что я просто хочу сделать простой тестовый запуск с Wicket внутри EAR на GlassFish v3.Однако теперь, когда я добавил библиотеки Wicket через плагин netbeans в мой проект WAR

  • wicket-1.4.10.jar
  • wicket-extensions-1.4.10.jar
  • slf4j-api-1.4.2.jar
  • slf4j-jdk14-1.4.2.jar

Я получаю эту ошибку при попытке запустить свое веб-приложениеon GlassFish:

исключение

javax.servlet.ServletException: PWC1243: выполнение фильтра вызвало основную причину исключения

java.lang.NoClassDefFoundError: org / apache /скорость / приложение / скорость

Нужна ли Уикету скорость как зависимость?Я проверил структуру проекта по умолчанию, созданную maven, и не нашел зависимости.Я также проверил урок wicket + ejb, в котором также не упоминается скорость.

Теперь, когда я добавил скорость к своему пути к классам, я получаю эту ошибку:

http://jira.codehaus.org/browse/MSITE-286

Это кажетсячтобы проблема была решена в 2008 году (конечно, я использовал последнюю версию).

Есть идеи, что я делаю не так?

заранее спасибо

1 Ответ

3 голосов
/ 28 ноября 2010

Wicket не требует скорости, хотя он может сотрудничать с ней через библиотеку wicket-speed.jar.

Полная трассировка стека может помочь определить, что означает , пытаясь загрузить его.хотя проблемы запуска веб-приложения могут быть болезненными для диагностики.

РЕДАКТИРОВАТЬ:

Соответствующая часть трассировки стека выглядит как

java.lang.NoClassDefFoundError: org/apache/velocity/app/Velocity
        at org.apache.wicket.velocity.Initializer.init(Initializer.java:63)
        at org.apache.wicket.Application.callInitializers(Application.java:843)
        at org.apache.wicket.Application.initializeComponents(Application.java:678)
        at org.apache.wicket.protocol.http.WicketFilter.init(WicketFilter.java:725)

Таким образом, приложение калитки определенно пытается загрузить скорость, и мы не можем винить стеклянную рыбу.Я собираюсь переключиться на компьютер, на котором у меня есть источник калитки, и вернусь с , может быть, другими идеями, но мне приходит в голову, что ваш web.xml может также содержать полезную информацию о конфигурации калитки.

Диагностика

Web.xml не является проблемой.

Проблема заключается в том, что Application.callInitializers() загружает инициализаторы из всех файлов wicket.properties вclasspath и пытается инициализировать связанные компоненты.

У вас есть wicket-speed.jar в вашем classpath, даже если вы не используете скорость, и wicket пытается инициализировать его, так как он содержит файл wicket.propertiesвызывая вызов org.apache.wicket.velocity.Initializer.init() (который также находится в wicket-speed.jar).Этот метод пытается вызвать статический метод init в Velocity, которого нет в пути к классам.

Если вы получили wicket-speed.jar от вашего пути к классам, эта проблема должна исчезнуть.

...