web-dev-qa-db-ja.com

Spring Boot例外:ServletContextリソース[/WEB-INF/dispatcherServlet-servlet.xml]を開けませんでした

私はこの概念実証を開発しました https://github.com/DISID/disid-proofs/tree/master/spring-boot-weblogic Weblogic 12c(12.2 .1)。

アプリケーションは正常にデプロイされて起動しますが、それに接続しようとすると(つまり/ accounts?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

私は何か見落としてますか?

おかげで、

13
eruiz

spring-boot-sample-war を使用して、WebLogic 12.2.1.0(プレーンな新規インストール)でこの問題を再現しました(ロギングを処理するための追加のweblogic.xmlを使用)。また、最新のパッチセット(WLS PATCH SET UPDATE 12.2.1.0.160419)を試しましたが、問題は解決しません。

何らかの理由で、/で利用可能なアプリケーションにアクセスするとすぐに、独自の構成を使用してDispatcherServletを作成する必要があると判断しました。

Oracleサポートにサービスリクエストを送信しました。この問題について彼らがどう思うかを確認します。

更新:「パッチ23124727:Java.IO.FILENOTFOUNDEXCEPTIONにより12.2.1でSPRING BOOT .WARをデプロイできません」は、Oracle WebLogic Server 12.2.1.0.0で使用でき、spring-boot-sample-warと同様に機能します。より高度なアプリケーション。

10

ダミーを置く回避策を見つけましたdispatcherServlet-servlet.xmlファイルWEB-INF

<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>
15
Robert Hume