簡體   English   中英

從碼頭7遷移到碼頭8時如何調用.addfilter()?

[英]How to call .addfilter() while migrating from jetty 7 to jetty 8?

我正在將碼頭7遷移到碼頭8,
我收到此錯誤:

找不到適用於addFilter(Class,String,int)servletContext.addFilter(JsonTokenFilter.class,“ / *”,FilterMapping.REQUEST)的合適方法;

我正在嘗試做的是:

 // servlet context
ServletContextHandler servletContext = new ServletContextHandler( ServletContextHandler.SESSIONS | ServletContextHandler.SECURITY);

// set session manager
SessionHandler sessionHandler = new GatewaySessionHandler(sessionManager);
servletContext.setSessionHandler(sessionHandler);
sessionHandler.addEventListener(new SessionListener());
sessionHandler.addEventListener(new CsrfGuardHttpSessionListener());
sessionManager.setSecureRequestOnly(Utilities.getConfigBoolean("fievel.jetty.secureCookies", true));
sessionManager.setHttpOnly(Utilities.getConfigBoolean(  "fievel.jetty.httpCookies", true));
setSessionSettings();

// add json rpc signal if session token invalid
servletContext.addFilter(JsonTokenFilter.class, "/*", FilterMapping.REQUEST);

最后一行是給出錯誤的那一行。

如果我將ServletContextHandler用於碼頭8,

addFilter(FilterHolder holder, String pathSpec, EnumSet<DispatcherType> dispatches) 

理想情況下,是我應該編寫的代碼類型。

誰能給我一個提示,我要去哪里錯了?

我認為你應該寫這樣的東西:

servletContext.addFilter(JsonTokenFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));

因為它期望一個EnumSet而不是int

我已經嘗試過Eclipse Jetty教程中的教程

public static void main(String[] args) throws Exception
{
    Server server = new Server(8080);

    ServletContextHandler servletContext = new ServletContextHandler(ServletContextHandler.SESSIONS);
    servletContext.setContextPath("/");
    server.setHandler(servletContext);

    servletContext.addServlet(new ServletHolder(new HelloServlet()),"/*");

    servletContext.addFilter(TestFilter.class, "/*", EnumSet.of(DispatcherType.REQUEST));

    server.start();
    server.join();
}

輸出為:

2016-08-10 15:13:58.054:INFO:oejs.Server:jetty-8.1.19.v20160209
TestFilter Init
2016-08-10 15:13:58.186:INFO:oejs.AbstractConnector:Started SelectChannelConnector@0.0.0.0:8080
TestFilter doFilter running

因此以這種方式確保注冊了過濾器

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM