Play2War - не удалось создать Vfs.Dir из URL
Я пытаюсь развернуть приложение Play 2.1.1 на Websphere 8.5.5 с помощью Play2War. Приложение отлично работает при запуске с play ~run
но когда я развертываю войну на Websphere, я получаю это сообщение об ошибке:
org.reflections.ReflectionsException:
could not create Vfs.Dir from url, no matching UrlType was found
[wsjar:file:/C:/apps/websphere/wlp/usr/servers/server_kev/workarea/org.eclipse.osgi/bundles/45/data/cache/com.ibm.ws.app.manager_gen_0fdbabb2-5ae7-4075-bda1-136e52319906/.cache/WEB-INF/lib/playbackend.jar!/]
Кто-нибудь еще видел эту проблему?
3 ответа
Если вы еще не вышли из коробки с вашей текущей библиотекой Reflections, просто добавьте Vfs UrlType:
Vfs.addDefaultURLTypes(
new Vfs.UrlType() {
public boolean matches(URL url) {
return url.getProtocol().equals("vfs");
}
public Vfs.Dir createDir(URL url) {
return DefaultUrlTypes.jarUrl.createDir(url);
}
Проверьте в последних источниках
Я бы получил это даже с последней версией библиотеки Reflections. В конце концов я обнаружил, что именно так я строил свою (толстую) банку (или, в вашем случае, войну). У меня был ant-скрипт (изначально сгенерированный Eclipse), который копировал libs как есть в jar и использовал какой-то загрузчик. Вместо этого я сказал ему распаковать libs в мою банку, и это решило проблему. Не уверен, почему это происходит, когда они упакованы как есть в банку / войну. Я надеюсь, что это помогает кому-то.
Если вы используете Subcontext Deployment
, убедитесь в conf/application.conf
, вы добавляете:
application.context=/KevSheedyApp/
Вы можете назвать свою войну как KevSheedyApp.war
,
Вы должны иметь возможность получить доступ к вашему приложению через http://host:port/KevSheedyApp/bla/bla