#kubernetes #openshift #jetty
Вопрос:
У меня есть приложение, запущенное на сервере Jetty, инкапсулированном в контейнер Docker. Один и тот же контейнер развертывается и корректно работает в локальной среде docker.
При развертывании контейнера на OpenShift Kubernetes возникают ошибки Jetty с :
2021-11-13 18:07:01.667:WARN:oejw.WebAppContext:main: Failed startup of context o.e.j.q.QuickStartWebApp@39c0f4a{/,file:///opt/application/webapps/application/,UNAVAILABLE}{/application/} java.lang.reflect.InvocationTargetException Caused by: java.lang.IllegalArgumentException: java.net.URISyntaxException: Expected authority at index 7: file:// at org.eclipse.jetty.quickstart.AttributeNormalizer.toCanonicalURI(AttributeNormalizer.java:93) at org.eclipse.jetty.quickstart.AttributeNormalizer.add(AttributeNormalizer.java:208)
Я понимаю, что ошибка связана с URI, который может быть неправильно отформатирован, но я изо всех сил пытаюсь понять, где он настроен, учитывая, что он работает в локальной среде докеров.
Любые предложения о том, как это отладить, очень приветствуются.
Ответ №1:
Похоже, у вас неполный uri файла.
file://
Это не создает допустимый URI на Java.
$ jshell | Welcome to JShell -- Version 11.0.12 | For an introduction type: /help intro jshellgt; new URI("file://") | Exception java.net.URISyntaxException: Expected authority at index 7: file:// | at URI$Parser.fail (URI.java:2913) | at URI$Parser.failExpecting (URI.java:2919) | at URI$Parser.parseHierarchical (URI.java:3163) | at URI$Parser.parse (URI.java:3114) | at URI.lt;initgt; (URI.java:600) | at (#1:1)
Большая часть трассировки стека помогла бы определить, откуда это берется.