我看到很多这个问题的帖子,但我还不清楚如何解决我的问题。我有一个Maven应用程序,可以正常使用Tomcat的外部实例。我被要求将其切换到maven的嵌入式实例,因此我可以使用mvn tomcat7:run
命令运行它。
很好,但现在我得到了下面列出的例外情况。我不知道缺少什么设置。错误消息没有用,因为它只列出了一个相对路径: “无法打开ServletContext资源[ /WEB-INF/classes/application.xml ]”。 maven正在构建的“target”文件夹下有一个“ /WEB-INF/classes/application.xml ”文件,但显然嵌入式tomcat正在寻找其他地方,除了我不知道在哪里或如何告诉它查看“ /target/WEB-INF/classes/application.xml ”
如何确定嵌入式tomcat实例在哪里查找此文件(整个路径,而不仅仅是相对路径)以及如何更新它?
更新 - 我看到了您推荐给我的链接。它没有帮助。我有一个非常具体的问题,在您提供的链接中没有解决:如何确定嵌入式tomcat实例在哪里查找此文件?
SEVERE:将上下文初始化事件发送给侦听器的异常 类的实例 org.springframework.web.context.ContextLoaderListener org.springframework.beans.factory.BeanDefinitionStoreException:从ServletContext资源解析XML文档的IOException [/WEB-INF/classes/application.xml];嵌套异常是 java.io.FileNotFoundException:无法打开ServletContext资源 [/WEB-INF/classes/application.xml] 在org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344) 在org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) 在org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181) 在org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217) 在org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188) 在org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125) 在org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94) at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129) 在org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:612) 在org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:513) 在org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:444) 在org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:326) 在org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107) 在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4797) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5291) 在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1559) 在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1549) 在java.util.concurrent.FutureTask.run(FutureTask.java:262) 在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615) 在java.lang.Thread.run(Thread.java:745) 引起:java.io.FileNotFoundException:无法打开ServletContext资源[/WEB-INF/classes/application.xml] 在org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:141) 在org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)