Я, конечно, добрый малый, но не когда уходит 3 часа на поиск ошибки, которая нигде не описана. Сейчас я сильно злой. Кому этот пост поможет, с того шоколадка и банка соленых огурцов.

Этим прекрасным воскресным днем я решил дописать свою заметку про организацию тестирования. Для этого нужно написать простенькое приложение на UI5, затем его же протестировать. Нарыл кучу документации для чайников в духе дикого запада — как создать приложение с нуля. Топ — шлеп, сделал «Hello World». Все четко по инструкции. Запускаю — не работает. Вот, ругается:

2016-05-01 19:08:23.629:INFO::main: Logging initialized @370ms
2016-05-01 19:08:23.756:INFO:oejs.Server:main: jetty-9.2.13.v20150730
2016-05-01 19:08:57.880:INFO:oejw.StandardDescriptorProcessor:main: NO JSP Support for /testApp, did not find org.eclipse.jetty.jsp.JettyJspServlet
2016-05-01 19:08:57.897:WARN:oejs.BaseHolder:main:
java.lang.ClassNotFoundException: com.sap.ui5.resource.CacheControlFilter
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)

При чем этот класс есть в библиотеках, которые система подключила.

Два с половиной часа ушло на попытку понять, что не так. В режиме Web App Preview работае. Run on local preview server — нет.
ecplise_1

Выяснилось… Надо библиотеки SAPUI5 добавить вручную в конфигурацию запуска сервера.
Жмяк:
ecplise_2

Жмяк:
ecplise_3

Что это было? Локальный J2EE сервер запускает под Eclipse сам по себе. Он ничего не знает про наш проект. Eclipse умный, но недостаточно. Он упаковывает наши исходники в war файл, размещает его в каталоге сервера. Сервер видит обновленный файл, распаковывает и загружает в память. Так работает любой J2EE сервер. Вот только никто не догадался сказать ему, что кроме наших исходников надо еще саповские библиотеки тоже передать в виде отдельного файла или внутри нашего. Поэтому он про них ничего и не знал.

Век живи, все равно дураком помрешь 🙂