【问题标题】:OSGi Http Whiteboard patternOSGi Http 白板模式
【发布时间】:2016-11-22 06:07:53
【问题描述】:

从 web.xml 迁移到 OSGi Http Whiteboard 模式创建 bundle-context.xml 如何在 jspServletfilter 的 osgi:service-properties 中从 web.xml 传递以下属性

 <jsp-config>
        <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <el-ignored>true</el-ignored>
        </jsp-property-group>
 </jsp-config>

我尝试了以下解决方案,但它不起作用。

<bean id="jspServlet" class="com.test.servlet.web.servlet.TestJSPServlet"/> 

<osgi:service ref="jspServlet" interface="javax.servlet.Servlet" >
    <osgi:service-properties>
        <entry key="osgi.http.whiteboard.filter.name" value="JSPServlet" />
        <entry key="osgi.http.whiteboard.servlet.pattern" value-ref="jspPatternsList"/>
        <entry key="osgi.http.whiteboard.context.select" value="(osgi.http.whiteboard.context.name=cb)" />
        <entry key="servlet.init.el-ignored" value="true" />    
    </osgi:service-properties>
</osgi:service>

【问题讨论】:

  • 您使用的是哪个 OSGi Http Whiteboard 实现?费利克斯一号?

标签: java osgi servlet-filters websphere-liberty whiteboard


【解决方案1】:

我只是又检查了一次,但如果我没有完全错误的话,OSGi 规范并没有以某种方式处理 JSP。因此,您在那里尝试执行的操作不适用于 Apache Felix 实现。

让 JSP 使用 Http Whiteboard 方法的唯一方法是切换到 Pax - Web 项目。因为它不仅支持白板方法(规范合规性仍在进行中,6.0.0-SNAPSHOT),而且现在规范中的更多内容。

为了实现你想要的,Pax-Web 需要以下内容:

<!-- JSP handling -->
<service id="jspMapping" interface="org.ops4j.pax.web.extender.whiteboard.JspMapping">
    <bean class="org.ops4j.pax.web.extender.whiteboard.runtime.DefaultJspMapping">
        <property name="urlPatterns">
            <array>
                <value>/jsp</value>
            </array>
        </property>
    </bean>
</service>

也可以在 pax-web 项目的samples 中找到示例。

【讨论】:

猜你喜欢
  • 2017-12-27
  • 2022-09-29
  • 1970-01-01
  • 2013-12-25
  • 2018-05-22
  • 2012-01-02
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
相关资源
最近更新 更多