2013-08-27 30 views
0

如何運行togglz與碼頭9嵌入。我tryed與後續代碼Togglz jetty9嵌入

 ServletHolder togglz = new ServletHolder(TogglzConsoleServlet.class); 
     togglz.setInitParameter("org.togglz.core.manager.TogglzConfig", "com.citronium.togglz.config.PlansteryTogglzConfig"); 
     togglz.setInitParameter("org.togglz.FEATURE_MANAGER_PROVIDED", "true"); 
     context.addServlet(togglz, "/togglz/*"); 
     EnumSet<DispatcherType> all = EnumSet.of(DispatcherType.ASYNC, DispatcherType.ERROR, DispatcherType.FORWARD, 
       DispatcherType.INCLUDE, DispatcherType.REQUEST); 
     context.addFilter(new FilterHolder(new TogglzFilter()), "/togglz/*", all); 

我有如下錯誤

oejucomponent.AbstractLifeCycle - 失敗oejsServletContextHandler @ 6195bb34 {/,空,STARTING}:java.lang.IllegalStateException:找不到任何執行TogglzConfig或TogglzBootstrap。請確保您已將所需的集成模塊添加到您的項目中,或者按照本文檔的「配置」一章中所述在web.xml中註冊實現。 java.lang.IllegalStateException:找不到TogglzConfig或TogglzBootstrap的任何實現。請確保您已將所需的集成模塊添加到您的項目中,或者按照本文檔的「配置」一章中所述在web.xml中註冊實現。

+0

你是如何設法解決這個問題的? 我在同一個問題上運行,似乎沒有解決它=/ – Marcelo

回答

1

我想你應該設置org.togglz.FEATURE_MANAGER_PROVIDED改爲false。設置爲true會告訴Togglz它不應該使用TogglzConfig實現來引導FeatureManager,而是嘗試使用由Spring或CDI等IoC容器提供的FeatureManager。

BTW:您還應該將TogglzFilter的映射更改爲/*,以便Togglz適用於所有請求,而不僅適用於以/togglz開頭的URL請求。

+0

不起作用。你能舉一個例子來開始用jetty9綁定嗎?我嘗試使用沒有XML的碼頭。 –

+0

我是Togglz的創始人,但我對嵌入式碼頭知之甚少。但是,如果您創建了一個可以再現這一點的最小示例,我可以看看它。但我認爲togglz用戶組是一個更好的地方來幫助你:https://groups.google.com/forum/?fromgroups#!forum/togglz-users – chkal

+0

還有:你應該只使用DispatcherType.REQUEST對於TogglzFilter。 – chkal

0

我知道這個概率是舊的,但由於我遇到了同樣的問題,我想分享解決方案。

您需要在您的ServletContextHandler上設置init params而不是ServletHolder。然後一切工作正常。