今天,我遇到了您在此处描述的完全相同的问题。我将 WebSphere Liberty Profile 8.5.5.1 与 Eclipse Kepler 一起使用。我的项目使用Wicket
框架,所以在我的 web.xml 中我有 Wicket 过滤器,如下所示:
<filter>
<filter-name>wicket.filter</filter-name>
<filter-class>org.apache.wicket.protocol.http.WicketFilter</filter-class>
<init-param>
<param-name>applicationClassName</param-name>
<param-value>my.wicket.Application</param-value>
</init-param>
<init-param>
<param-name>configuration</param-name>
<param-value>deployment</param-value>
</init-param>
</servlet>
<filter-mapping>
<filter-name>wicket.filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在调试时,我发现在 isUserInRole 函数内部,WebSphere 似乎在寻找一个 servlet。显然,我没有在我的应用程序中使用任何 servlet,只是使用了 Wicket 过滤器。所以我的解决方法是使用 Wicket servlet 而不是过滤器,这似乎工作正常。
长话短说:当您的应用程序没有任何 servlet 时,似乎 isUserInRole 在 WebSphere Liberty Profile 上不起作用。