在 Karaf 中部署 2 个具有相同 Web-ContextPath 的包
Deploy 2 bundles with same Web-ContextPath in Karaf
我想部署 2 个不同的包,一个是拥有所有其余服务,另一个是在同一个 Karaf 实例中拥有所有 HTML/JSP 页面。请帮助我如何做到这一点。
(我能够成功安装捆绑包,但我无法访问网页,但其余部分在相同的 Web-ContextPath 上工作正常)
这是不可能的,因为对于 std 来说也是不可能的。 Web 应用程序上下文。您的 Web-ContextPath 必须是唯一的。
您可以做的是拥有一个共享的 HttpContext,或者实际上更适合您的是将 OSGi 片段附加到包含 Rest Servlet 的包,或者使用网络片段。当您谈论 Web-ContextPath 时,它是 WAB 的一个属性,您最好使用 Web 片段。
只有在使用 HttpService 或将您的资源注册为服务的情况下,您才能在它们之间共享 HttpContext。
对于 Web Fragment,您有一个标准。 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>
另请参阅以下内容sample of Pax-Web
对于共享的 HttpContext,请查看以下内容 sample.
我想部署 2 个不同的包,一个是拥有所有其余服务,另一个是在同一个 Karaf 实例中拥有所有 HTML/JSP 页面。请帮助我如何做到这一点。
(我能够成功安装捆绑包,但我无法访问网页,但其余部分在相同的 Web-ContextPath 上工作正常)
这是不可能的,因为对于 std 来说也是不可能的。 Web 应用程序上下文。您的 Web-ContextPath 必须是唯一的。
您可以做的是拥有一个共享的 HttpContext,或者实际上更适合您的是将 OSGi 片段附加到包含 Rest Servlet 的包,或者使用网络片段。当您谈论 Web-ContextPath 时,它是 WAB 的一个属性,您最好使用 Web 片段。 只有在使用 HttpService 或将您的资源注册为服务的情况下,您才能在它们之间共享 HttpContext。
对于 Web Fragment,您有一个标准。 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>
另请参阅以下内容sample of Pax-Web
对于共享的 HttpContext,请查看以下内容 sample.