2012-11-06 52 views
3

鑑於以下的web.xml:Dropwizard:設置servlet上下文參數

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> 
    <filter> 
     <filter-name>Guice Filter</filter-name> 
     <filter-class>com.google.inject.servlet.GuiceFilter</filter-class> 
    </filter> 
    <filter-mapping> 
     <filter-name>Guice Filter</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 
    <listener> 
     <listener-class>com.foo.JerseyContextListener</listener-class> 
    </listener> 
    <context-param> 
     <param-name>module</param-name> 
     <param-value>com.foo.MainModule</param-value> 
    </context-param> 
    <session-config> 
     <session-timeout> 
      30 
     </session-timeout> 
    </session-config> 
</web-app> 

我如何告訴DropWizard設置 「模塊」 servlet上下文參數設置爲 「com.foo.MainModule」?

Configuration.getHttpConfiguration().getContextParameters()總是返回一個空的列表。我們是否應該擴大這個班級?

回答

4

你可以將它設置在您的配置文件:

- http: 
    - contextParameters: 
    - module: com.foo.MainModule 
+0

好像最新的DW不支持contextParameters –

1

看來你需要重寫Configuration.http

public class MyConfiguration extends Configuration 
{ 
    public MyConfiguration() 
    { 
     this.http = new HttpConfiguration() 
     { 
      @Override 
      public ImmutableMap<String, String> getContextParameters() 
      { 
       return ImmutableMap.<String, String>builder().put("module", MainModule.class.getName()). 
        build(); 
      } 
     }; 
    } 
} 
相關問題