当前位置: 首页 > 面试题库 >

将ServiceLoader配置文件放在Web应用程序中的位置

邓驰
2023-03-14
问题内容

我正在用Eclipse编写Web应用程序。

我正在尝试使用ServiceLoader类加载一些插件。

ServiceLoader的文档说我需要在META-INF / services中放置一个文件

我已经将该文件放置在WebContent / META-INF / service文件夹中,但是当我通过Eclipse运行JUnit测试时,找不到任何插件。

这是文件的正确位置吗?

另外,如何从ServiceLoader中获取更多调试信息,例如要在其中搜索文件的文件夹?


问题答案:

META-INF / services应该位于用于查找插件的类加载器的类路径中的jar文件或资源目录的根目录下。

如果您具有Web应用程序,则可以具有如下目录结构:

<webappname>/WEB-INF/classes/META-INF/services

但是理想的方法是将其保存在插件的jar文件中。例如,如果您有一个WEB- INF/lib/myplugin.jar与捆绑在一起的插件,并且您的插件类为,com.example.plugin.MyPlugin
那么jar应该具有以下结构:

myplugin.jar!/META-INF/services/com.example.plugin.MyPlugin

完成此操作后,您可以使用Web应用程序的类加载器获取服务加载器



 类似资料:
  • 我用一个xml文件配置log4j,但我不确定在哪里添加格式msgnolookups=true?

  • 问题内容: 好的,所以我不想在这里展开一场圣战,但是我们正在努力巩固处理应用程序配置文件的方式,我们正在努力决定采用哪种最佳方法。目前,我们分发的每个应用程序都在使用其自己的临时配置文件,无论是属性文件(ini样式),XML还是JSON(目前仅在内部使用!)。 目前,我们的大多数代码是Java,因此我们一直在研究Apache Commons Config ,但是我们发现它非常冗长。我们还研究了XM

  • 我尝试了一个显示其他响应的测试用例,我将一步一步地解释它: > 我在我的设备上安装了MDM配置文件,这提示我安装了一个应用程序,并且我成功地安装了它。应用程序已进入“应用程序中的配置文件”部分。 然后我手动删除了应用程序。

  • 对于那些在生产中运行Go后端的人: 运行Go web应用程序的堆栈/配置是什么? 除了人们使用标准库NET/HTTP包来保持服务器的运行之外,我还没有看到关于这个主题的很多东西。我读过使用Nginx向Go服务器传递请求-Nginx with Go 这在我看来有点脆弱。例如,如果计算机重新启动(没有附加配置脚本),服务器将不会自动重新启动。 是否有更坚实的生产设置? 关于我的意图--我正在为我的下一

  • 我对Springs@Configuration和@Conditional annotation是新手。我在问自己,在我的maven文件夹结构中,这些配置java文件应该放在哪里。 到目前为止,我将所有配置xml文件放入src/main|test/Resources/但是使用这种新方法,不再有xml文件。 谢啦

  • 最近,我开始使用spring boot,我正在尝试将我的旧spring项目转换为使用它,所有这些项目都是web应用程序。我设法编译、打包和运行应用程序,但当我尝试在浏览器中访问它们时,我无法访问我的视图。 首先,我尝试将jsp页面放在通常的文件夹src/main/webapp/WEB-INF/jsp中,但在从官方留档中阅读本文后: http://docs.spring.io/spring-boot