我的结构由一个使用Java util服务加载器加载插件的主应用程序组成。在加载服务提供者JAR之后,主应用程序的服务提供者尝试加载他们自己的服务提供者。但是他们不能完成这个,因为类加载器上下文是主应用程序的上下文。这意味着类加载器不知道尝试加载自己的服务提供程序的服务提供程序所使用的接口,从而导致类未找到异常。任何人都可以建议我的服务提供商如何使用服务加载器加载自己的服务提供者?有没有办法在运行时动态更改类加载器上下文?我会稍后尝试发布一些代码。我目前远离我的笔记本电脑的代码位于。谢谢。加载服务加载器的Java服务通过服务加载器加载他们自己的服务
1
A
回答
0
嗯,我得到了它使用重载方法,上述工作。唯一的区别是我用load(Class service,Plugin.class.getClassLoader());. Thread.currentThread()。getContextClassLoader()仍然返回主应用程序的类加载器
1
我假设你使用ServiceLoader.load(Class service)加载插件?如果是,它使用当前线程的类加载器(Thread.currentThread()。getContextClassLoader())。
因此尝试使用这种方法,你可以注入不同的类加载器的重载版本:
ServiceLoader<S> load(Class<S> service, ClassLoader loader)
相关问题
- 1. 加载宕机服务器
- 2. 加载JavaScript服务器端
- 3. CSS未通过服务器加载
- 4. 通过服务自动加载数据
- 5. Java服务加载器说明
- 6. 加载第一页加载服务 - AngularJS
- 7. 加载测试服务以加载CDN
- 8. 自动重新加载Koa服务器
- 9. Tomcat7服务器无法加载我的小服务器
- 10. 从服务器为IoS加载自定义加载动画
- 11. 加载主机服务器并重新启动服务器
- 12. 无法加载服务器上的jekyll
- 13. 无法加载服务器中的Oracle.DataAccess.dll
- 14. 服务器错误加载的HttpModule
- 15. 加载web服务时System.IO.FileNotFoundException
- 16. AngularJS加载REST API服务
- 17. Syfmony - 启动加载服务
- 18. 服务崩溃加载dll
- 19. 加载数据,WCF服务
- 20. 服务器上的ASP.net Web服务有时不会加载
- 21. Rails服务器无法加载
- 22. 如何从服务器加载mobiscroll值
- 23. 单不加载*在服务器PC
- 24. 在jboss服务器上加载DLL
- 25. 无法加载Tomcat服务器配置
- 26. listfield从服务器加载位图
- 27. 从服务器加载文件到Dropzonejs
- 28. 加载XML文件到服务器
- 29. 如何从服务器加载MainActivity.java?
- 30. GWT - 加载之前访问服务器
是的,我使用ServiceLoader。我尝试过Thread.currentThread()。getContextClassLoader(),但它仍然返回了主应用程序的类加载器。 – MykelXIII
那么我得到它使用上面提到的重载的方法工作。唯一的区别是我用load(Class service,Plugin.class.getClassLoader());. Thread.currentThread()。getContextClassLoader()仍然返回主应用程序的类加载器。 +1为重载的方法提示尽管:) – MykelXIII