我的Eclipse RCP应用程序目前使用同一插件的两个版本(javax.servlet 2.5.0
和javax.servlet 3.1.0
)。
当我从我的Eclipse(Mars 4.5.2)工作区调试应用程序时,我发现javax.servlet
的最低版本没有加载也没有显示为可用,如您在以下控制台代码段中所示(请注意{ {1}} javax.servlet
甚至没有出现。2.5.0
是一个不同的插件。)
javax.servlet.jsp
我已经查看了我的调试配置,并选择在调试会话期间使用这两个版本(osgi> ss javax.servlet
Framework is launched.
id State Bundle
41 INSTALLED javax.servlet.jsp_2.0.0.v200806031607
8947 ACTIVE javax.servlet_3.1.0.201605180802
和2.5.0
)。
但是,当我安装我的应用程序并在不使用Eclipse环境的情况下执行它时,OSGI框架能够毫无问题地加载这两个包,如question中所述。
我缺少什么?如何通过加载两个插件来从Eclipse调试我的应用程序?
答案 0 :(得分:0)
OSGi延迟加载。让那些处于Debug配置中的是INSTALLED,然后OSGi将仅在必要时激活它们。
在Debug配置的情况下,仅使用旧版本是有效的,而在目标环境中,sometginh也需要激活3.1.0。
您的调试配置和目标环境在那里不相同。
要知道需要什么,可以使用-console
标志启动目标环境,并使用常用命令来诊断依赖项。例如,在3.1.0上尝试卸载命令应该在完成之前解释一下取决于它的内容。