在我的申请中,我同时拥有DispatcherServlet-servlet.xml
和root-context.xml
。我在root-context.xml
中配置了所有bean,我想读取那个xml。我使用ApplicationContext
来读取该文件,但我得到了ClassNotFoundException
。我的两个xml都在WEB-INF文件夹里面。如果我在src文件夹外创建xml它工作正常但根据我的项目我不能改变文件的位置,所以请告诉我如何阅读WEB-INF内的xml。
以下是我读取xml文件的代码。
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/WEB-INF/spring/root-context.xml");
和
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("/WEB-INF/spring/DispatcherServlet-servlet.xml");
答案 0 :(得分:0)
我认为您应该在WEB-INF / web.xml中定义您的应用程序或servlet上下文,而不需要手动初始化它。 像这样:
<context-param>
<param-name>ctxLocation</param-name>
<param-value>/WEB-INF/classes/app-ctx.xml</param-value>
</context-param>
<servlet>
<servlet-name>MyServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>ctxLocation</param-name>
<param-value>/WEB-INF/classes/servlet-ctx.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
您还需要使用ContextLoaderListener
类
答案 1 :(得分:0)
ClassPathXmlApplicationContext,您应该将这些文件放在类路径中,即在IDE的src目录中,以便将其复制到默认的classes目录。