gpt4 book ai didi

java - 从不同于类路径的位置加载 spring XML 以在 Servlet 中获取 bean

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:26:57 26 4
gpt4 key购买 nike

我有一个 Servlet 类,它应该从服务中获取数据并将数据写回 servlet 响应。 service 类已经在 spring xml (dispatcher-servlet.xml) 中声明。所以我想从 dispatcher-servlet.xml 中获取 service class bean

我试过下面的代码

            ApplicationContext context = new FileSystemXmlApplicationContext("classpath:../WebContent/WEB-INF/dispatcher-servlet.xml");
ServiceImpl serviceImpl = (ServiceImpl) context.getBean("service");

及以下代码

            ServletContextResource res = new ServletContextResource(getServletContext(),"/WEB-INF/dispatcher-servlet.xml");
ApplicationContext context = new FileSystemXmlApplicationContext("file:"+res.getURL()+"dispatcher-servlet.xml");
ServiceImpl serviceImpl = (ServiceImpl) context.getBean("service");

但是那些抛出 FileNotFoundException

如果我将 dispatcher-servlet.xml 移动到 src 文件夹,它工作正常。但是我不能移动它,因为 dispatcher-servlet.xml 已经在 WEB-INF 中存在很长时间了,许多其他类正在使用它。 dispatcher-servlet.xml 已在 Web.xml 中正确声明,并且可以正常加载和工作。

唯一的问题是我无法从 servlet 类中的 java 代码加载它。

dispatcher-xml的位置是/WebContent/WEB-INF/dispatcher-servlet.xml

非常感谢任何指示或解决方法。谢谢。

最佳答案

WEB-INF 添加到类路径

你可以试试下面的代码

ApplicationContext context = new FileSystemXmlApplicationContext
("classpath:/../dispatcher-servlet.xml");

考虑阅读类路径是什么以及网络应用程序的哪些部分被添加到类路径中,如 Sotirios Delimanolis 所建议的那样

关于java - 从不同于类路径的位置加载 spring XML 以在 Servlet 中获取 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19960524/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com