我想要部署2個不同的包,其中一個具有所有其他服務,另一個具有所有的HTML/JSP頁面在同一個Karaf實例中。請幫助我如何做到這一點。在Karaf中部署2個具有相同Web-ContextPath的包
(我能夠成功安裝的軟件包,但我無法訪問網頁,但其餘的都是在同一個網絡的contextPath工作的罰款)
我想要部署2個不同的包,其中一個具有所有其他服務,另一個具有所有的HTML/JSP頁面在同一個Karaf實例中。請幫助我如何做到這一點。在Karaf中部署2個具有相同Web-ContextPath的包
(我能夠成功安裝的軟件包,但我無法訪問網頁,但其餘的都是在同一個網絡的contextPath工作的罰款)
這是不可能的,因爲它也不會對於std可能。 Web應用程序環境。您的Web-ContextPath必須是唯一的。
你可以做的是擁有一個共享的HttpContext,或者實際上最適合你的是將OSGi Fragment附加到包含Rest Servlet的bundle,或者使用web-fragment。正如你談到的是一個Web-ContextPath,它是WAB的一個屬性,你最好使用Web Fragment。 只有在使用HttpService或將資源註冊爲服務的情況下,您纔可以在它們之間共享HttpContext。
在Web碎片的情況下,你有一個std。在web.xml中你的第一個包,你的第二個捆綁將有類似以下內容:
<web-fragment xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd"
version="3.0"
id="module1">
<error-page>
<error-code>404</error-code>
<location>/error.jsp</location>
</error-page>
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/exception.jsp</location>
</error-page>
</web-fragment>
對於共享的HttpContext在以下sample.
所以來看看意味着如果我想部署兩者,我需要將它們都保存在同一個捆綁包中,作爲更簡單更清晰的解決方案?或者我可以選擇2種不同的Web上下文路徑,因爲它更有可能僅由移動應用程序使用其餘部分,並且HTML/JSP將更加面向Web。 – Jayesh
是的,您需要將它們放在一個WAB中,或者將兩個不同的WAB與不同的Web-ContextPath –