2015-10-09 2 views
0

Я пытаюсь запустить пример архетипа и другой проект, который я пытаюсь обновить с 6.5 до 7.0.0, но я этого не сделал.Кто-нибудь смог запустить Wicket 7.0.0 на Websphere Liberty Profile 8.5.5.7?

Пример архетипа работает нормально на пристани, а проект, который я пытался обновить, работает нормально и в причале, и в 8.5.5.7, но после изменения зависимостей я продолжаю получать исключение ниже, и я не совсем уверен, проблема с конфигурацией (поскольку все работает нормально с 6.5), с калитки 7.0.0, поскольку исключение происходит изнутри калитки или из WAS8.5.5.7.

[ОШИБКА] SRVE0271E: Uncaught инициализации() исключение создан сервлет [калитку-сервлета] в заявке [blahblah]: javax.servlet.ServletException: java.lang.ClassCastException: com.ibm.ws.artifact. url.internal.WSJarURLStreamHandler $ WSJarURLConnectionImpl не может быть добавлен в java.net.JarURLConnection at org.apache.wicket.protocol.http.WicketFilter.init (WicketFilter.java:455) at org.apache.wicket.protocol.http. WicketServlet.init (WicketServlet.java:271) at javax.servlet.GenericServlet.init (GenericServlet.java:244) at com.ibm.ws.webcontainer.servlet.ServletWrapper.init (ServletWrapper.java:332) at [внутренние классы] Вызвано: ja va.lang.ClassCastException: com.ibm.ws.artifact.url.internal.WSJarURLStreamHandler $ WSJarURLConnectionImpl не может быть добавлен в java.net.JarURLConnection at org.apache.wicket.Application.collectWicketProperties (Application.java:503) at org.apache.wicket.Application.initializeComponents (Application.java:593) at org.apache.wicket.Application.initApplication (Application.java:918) at org.apache.wicket.protocol.http.WicketFilter.init (WicketFilter.java:429) ... 4 еще [ERROR] SRVE0315E: Исключение произошло: java.lang.Throwable: javax.servlet.ServletException: java.lang.ClassCastException: com.ibm.ws.artifact.url. internal.WSJarURLStreamHandler $ WSJarURLConnectionImpl не может быть добавлено в java.net.JarURLConnection at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest (WebA pp.java:4900) at [внутренние классы] Вызвано: javax.servlet.ServletException: java.lang.ClassCastException: com.ibm.ws.artifact.url.internal.WSJarURLStreamHandler $ WSJarURLConnectionImpl не может быть добавлено в java.net .JarURLConnection at org.apache.wicket.protocol.http.WicketFilter.init (WicketFilter.java:455) at org.apache.wicket.protocol.http.WicketServlet.init (WicketServlet.java:271) в javax. servlet.GenericServlet.init (GenericServlet.java:244) at com.ibm.ws.webcontainer.servlet.ServletWrapper.init (ServletWrapper.java:332) ... 1 еще Вызвано: java.lang.ClassCastException: com.ibm.ws.artifact.url.internal.WSJarURLStreamHandler $ WSJarURLConnectionImpl не может быть добавлен в java.net.JarURLConnection at o rg.apache.wicket.Application.collectWicketProperties (Application.java:503) at org.apache.wicket.Application.initializeComponents (Application.java:593) at org.apache.wicket.Application.initApplication (Application.java: 918) в org.apache.wicket.protocol.http.WicketFilter.init (WicketFilter.java:429) ... еще 4

UPDATE ------------ в качестве калитки 7.1.0 больше не возникает. Как упоминалось в @klopfdreh ответе была проблема совместимости, я принимаю этот ответ, потому что, по-моему, обсуждение в комментариях помогло команде калитки исправить/выявить проблему в версии 7.1.0.

+1

Просьба заполнить заявку на https://issues.apache.org/jira/browse/WICKET. Благодаря! –

+0

https://issues.apache.org/jira/browse/WICKET-5997 вот так? – DguezTorresEmmanuel

ответ

1

Это лишь предположение, но, кажется, что проблема, кажется, близко к этому один:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=430180

Как одного комментария, вы можете попытаться установить следующие параметры в вашем «JVM .Options ":

-Dcom.ibm.websphere.persistence.DisableJpaFormatUrlProtocol=true 

Чтобы реализовать это без отключения„wsjar“протокол, нам нужно больше входного сигнала о реализации„WSJarURLConnectionImpl“- единственный метод, называемый от„JarURLConnection“является„getJarFile()“, так вопрос здесь: Doe s "WSJarURLConnectionImpl" также предоставляет этот метод и возвращает его JarFile? Тогда мы можем использовать отражения в этом месте.

+0

Это свойство влияет только на JPA, а не ClassLoader.getResources(). WSJarURLConnectionImpl не API, поэтому поддержка не поддерживается. Проблема в том, что JarURLConnection.close() не существует, поэтому нет способа узнать, когда вызывающий абонент работает с JarFile. Это хорошо для «jar:», который на неопределенный срок кэширует JAR, но не для WSJarURLConnectionImpl, который должен иметь дело с открытыми ограничениями на файлы и развертываниями приложений. Библиотеки, такие как Wicket, которые пытаются перебирать каталоги из ресурсов ClassLoader (т. Е. Свойства META-INF/wicket/*.), По своей сути являются хрупкими и, возможно, неверно определены. –

+0

Ну, есть много других фреймворков, использующих папку META-INF - например, webjars - это внутренняя папка, в которую нельзя вставлять файлы - это правильно, но я думаю, что каждая реализация соединения должна рассматриваться как API, потому что он используется здесь и должен быть доступен для чтения, а в противном случае - исключение, которое говорит, что запись может быть нераспределенной. – klopfdreh

+0

Существует различие между _reading_ файлами от META-INF и ожиданием возможности _iterate_ файлов в META-INF. Первое прекрасно, последнее нельзя сделать портативно. –