当前位置: 首页 > 知识库问答 >
问题:

Dropwizard:设置servlet上下文参数

酆高翰
2023-03-14

给定以下web.xml:

<?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()始终返回空列表。我们应该扩展这个类吗?

共有2个答案

伯英锐
2023-03-14

看来你需要重写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();
            }
        };
    }
}
谭琛
2023-03-14

您可以在配置文件中设置它:

- http:
  - contextParameters:
    - module: com.foo.MainModule
 类似资料:
  • 在传统的web.xml类型配置中,您可以像这样配置上下文参数 web.xml 这是如何在Spring启动中实现的。我有一个需要参数的过滤器。 我使用的是,并包含了

  • 我们正在从Spring转移到Spring boot 2.5.0 构建WAR时是否缺少启用Servlet上下文的代码/属性? 我发现老问题和问题2除了使用不同的战争名称外没有真正的答案。

  • 我使用Spring Boot 2.1.2. RELEASE编写联调,无法设置所需的上下文路径。它总是等于空字符串(用servletContext.getContextPath()获得)。 application-test.properties: 测试配置: 呼叫代码: 应用测试中的其他属性。按预期注入属性。上下文路径通常在我运行服务器时设置。我试图以@SpringBootTest的形式启动这个测试

  • 我必须从我的网站上传一个文件,但cnt似乎可以使用drop wizard。 这是我网站上的表格。 如何在后端接收文件? 解决办法是

  • 问题内容: 我想知道是否有人可以建议:我有一种情况,即Quartz运行的计划作业将每小时更新对象的数组列表。 但是我需要此对象数组列表对Tomcat创建的所有会话可见。所以我在想,我每小时都会在运行的Quartz作业中的某个地方编写该对象,以便每个会话都可以访问它。 谁能说这可以最好地实现?我想知道从Quartz作业将对象写入servlet上下文吗?另一种选择是让每个会话从数据库表中填充对象的数组

  • Web 服务器可以支持多个逻辑主机共享一个服务器 IP 地址。有时,这种能力被称为“虚拟主机”。这种情况下,每一个逻辑主机必须有它自己的 servlet 上下文或一组 servlet 上下文。servlet 上下文不会在虚拟主机之间共享。 ServletContext 接口的 getVirtualServerName 方法允许访问ServletContext 部署在的逻辑主机的配置名字。该方法必须