如何为Jetty Set方法配置基本类型布尔值?

时间:2019-02-07 21:48:57

标签: pax-web

我将Jetf 9.2.21和pax-web-jetty 4.3.4与karaf 4.0.10一起使用。我尝试通过将布尔属性设置为SecurityHandler来使用jetty-web.xml配置SecurityHandler

<Configure id="webapp"
class="org.eclipse.jetty.webapp.WebAppContext">
<Get name="securityHandler">
   <Set name="sessionRenewedOnAuthentication" type="boolean">false</Set>
</Get>

但是,它失败了

    DOMJettyWebXmlParser | NoSuchMethodException while parsing jetty-web.xml
java.lang.NoSuchMethodException: org.eclipse.jetty.security.ConstraintSecurityHandler.setSessionRenewedOnAuthentication(java.lang.Boolean)
    at java.lang.Class.getMethod(Class.java:1786)[:1.8.0_172]
    at org.ops4j.pax.web.service.jetty.internal.util.DOMJettyWebXmlParser.set(DOMJettyWebXmlParser.java:188)[634:org.ops4j.pax.web.pax-web-jetty:4.3.4]

该异常是正确的:ConstraintSecurityHandler有一个方法的参数为 primitive 布尔类型,而不是DOMJettyWebXmlParser尝试使用的布尔类。

我成功使用了一些不同的配置

<Configure id="webapp"
    class="org.eclipse.jetty.webapp.WebAppContext">
    <Get name="securityHandler">           
       <Call name="setSessionRenewedOnAuthentication">
           <Arg type="boolean">false</Arg>
       </Call>
    </Get>
</Configure>

这次找到了方法。我有一个问题:是pax-web中的错误还是我的Set方法做​​错了?

0 个答案:

没有答案