Spring Исключение загрузки: не удалось открыть ресурс ServletContext [/WEB-INF/dispatcherServlet-servlet.xml]
Я разработал это доказательство концепции https://github.com/DISID/disid-proofs/tree/master/spring-boot-weblogic для тестирования развертывания Spring загрузочных приложений в Weblogic 12c (12.2.1).
Приложение развертывается и запускается успешно, но когда я пытаюсь подключиться к нему (то есть /account? number = 1234), отображается следующая ошибка:
Error 500--Internal Server Error
From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1:
10.5.1 500 Internal Server Error
The server encountered an unexpected condition which prevented it
from fulfilling the request.
И в файле журнала есть исключение:
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/dispatcherServlet-servlet.xml]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:609)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:510)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
at javax.servlet.GenericServlet.init(GenericServlet.java:244)
at weblogic.servlet.internal.StubSecurityHelper$ServletInitAction.run
Я что-то пропустил?
Спасибо,
Ответы
Ответ 1
Я воспроизвел эту проблему с помощью WebLogic 12.2.1.0 (простая новая установка), используя spring-boot-sample-war (с дополнительным weblogic.xml для ручная регистрация). Также попробовал последний набор патчей (WLS PATCH SET UPDATE 12.2.1.0.160419), но проблема остается.
По какой-то причине WebLogic решает, что ему необходимо создать DispatcherServlet, используя его собственную конфигурацию, как только вы получите доступ к приложению, доступному в /.
Я отправил запрос службы в службу поддержки Oracle, и мы увидим, что они думают об этой проблеме.
Обновление: 'Патч 23124727: НЕ МОЖЕТ ОТКРЫТЬ SPRING BOOT.WAR ON 12.2.1 DUE TO JAVA.IO.FILENOTFOUNDEXCEPTION' доступен для Oracle WebLogic Server 12.2.1.0.0 и работает как с spring -boot -простая война, а также более продвинутое приложение.
Ответ 2
Я нашел обходное решение, поместив в WEB-INF
файл фиктивного dispatcherServlet-servlet.xml
:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- Do not remove this file! -->
</beans>