【发布时间】:2018-09-07 18:32:17
【问题描述】:
我在同一个 war 包的 karaf 中有两个版本(1.0 和 2.0),其中包含在同一地址上运行的 servlet。我用这个命令运行它:
捆绑:安装 -s "webbundle:file:///home/marat/projects/webmodule/target/webmodule-1.0.war?Bundle-SymbolicName=Runner&Web-ContextPath=/sample"
并且两个战争包都在 Karaf 网络控制台中显示为活动。
我有一个应用程序每 10 毫秒 ping 地址http://localhost:8181/sample/hello(servlet)(应用程序发送 GET 请求)。首先,该应用程序从以 war v1.0 为代表的 servlet 中获取答案。如果我停止包含war v1.0 的包,我希望karaf 自动将发送到地址http://localhost:8181/sample/hello 的请求切换到war v2.0,因为该包中的servlet 与war 1.0 的地址相同。应用会收到此响应:
java.io.IOException:服务器返回 HTTP 响应代码:401 用于 URL: http://localhost:8181/sample/hello
当我重新启动一个 pinger 应用程序时,它成功连接到 war v2.0。
当我停止战争版本 1.0 时,如何使 Karaf 不自动切换到战争 v2.0?
【问题讨论】: