barbitoff programmer`s blog

Здесь я публикую заметки из программерской жизни: грабли, на которые мне случилось наступить, проблемы, для которых было найдено элегантное (или не очень) решение, а также все, с чем мне пришлось столкнуться и чем хотелось бы поделиться =)
PS Если хотите меня поблагодарить - на странице есть 3 места, чтобы это сделать =)

среда, 17 апреля 2013 г.

Weblogic 10.3.5: ошибка "java.io.FileNotFoundException: class path resource [...] cannot be resolved to absolute file path because it does not reside in the file system: zip:.../_wl_cls_gen.jar!/..."

Проблема:

При деплое war-ника на Weblogic 10.3.5 (без распаковки) вываливается ошибка:
java.io.FileNotFoundException: class path resource [...] cannot be resolved to absolute file path because it does not reside in the file system: zip:.../_wl_cls_gen.jar!/...
при попытке разворачиваемого приложения прочитать какой-либо из файлов, размещенных в WEB-INF/classes. Деплою плагином weblogic-maven-plugin.

Причина:

Судя по форуму Oracle (https://forums.oracle.com/forums/thread.jspa?threadID=842786), это некая известная проблема Weblogic'а, связанная с тем, что он зачем-то при деплое все классы из WEB-INF/classes запаковывает в _wls_cls_gen.jar, после чего возникают проблемы, если приложение пытается прочитать какой-нибудь ресурс, который до этого располагался в WEB-INF/classes (этот ресурс получается дважды упакован: в _wls_cls_gen.jar, а затем и в war). 

Решение:

Workaround`ом для этой проблемы является развертывание приложений не в war-никах, а в распакованном виде. Т.к. weblogic-maven-plugin развернуть приложение в распакованном виде не может, то подойдет другой вариант: приложение в распакованном виде запаковать в EAR, и его уже задеплоить. Как собирать распакованные war-ники в EAR, я уже писал: http://barbitoff.blogspot.ru/2013/04/maven-ear-plugin-war-ear.html. Деплой ear-ника плагином weblogic-maven-plugin ничем не отличается от деплоя war.

Комментариев нет:

Отправить комментарий