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

Servlet上下文并非仅在构建WAR时才设置

张岳
2023-03-14

我们正在从SpringWebInitializer转移到Spring boot 2.5.0SpringBootServletInitializer

@SpringBootApplication(exclude = { JmsAutoConfiguration.class, ActiveMQAutoConfiguration.class,
            SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class })
    public class WebServerConfig extends SpringBootServletInitializer implements ApplicationContextAware {
    @Bean
   public WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> webServerFactoryCustomizer() {
       return factory -> {
           factory.setRegisterDefaultServlet(true);
           factory.setContextPath("/servlet");
       };
   }
}
o.a.c.c.C.[Catalina].[localhost].[/]     : Initializing Spring DispatcherServlet 'dispatcherServlet'
public static void main(String[] args) {
    SpringApplication.run(WebServerConfig.class, args);
}
o.a.c.c.C.[.[localhost].[/servlet]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>${springframework.boot-version}</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <version>${springframework.boot-version}</version>
    <scope>provided</scope>
</dependency>
@Override
protected SpringApplicationBuilder configure(
  SpringApplicationBuilder builder) {
    return builder.sources(WebServerConfig.class);
}

构建WAR时是否缺少启用Servlet上下文的代码/属性?

我发现老问题和问题2除了使用不同的战争名称外没有真正的答案。

共有1个答案

丰佐
2023-03-14

使用下面的应用程序属性为Spring Boot应用程序设置上下文路径。如果您使用的是yaml配置。

server:
   servlet:
     context-path: /servlet

如果您正在使用application.properties

server.servlet.context-path = /servlet
 类似资料:
  • 给定以下web.xml: 如何告诉DropWizard将“模块”servlet上下文参数设置为“com.foo.MainModule”? 始终返回空列表。我们应该扩展这个类吗?

  • 问题内容: 我尝试在主机上创建几个不同的目录,以尝试了解Docker,以使dockerfile井井有条。我刚运行的Dockerfile如下所示: 我的实际转速仅为1 GB。但是,当我尝试这样做时,我将向Docker守护进程3.5 GB发送构建上下文。当您继续构建Docker映像时,还有其他我不知道的事情吗?当我在主机上的其他目录中构建更多映像时,是否正在累积内存? 问题答案: Docker客户端将

  • 问题内容: 我正在研究Java ExtJS应用程序,需要在其中创建和下载CSV文件。 单击按钮后,我希望将CSV文件下载到客户端计算机上。 在按钮侦听器上,我正在使用AJAX调用servlet。在那里,我正在创建一个CSV文件。 我不希望将CSV文件保存在服务器中。我希望使用下载选项 动态 创建文件。我希望将文件的内容创建为字符串,然后将其作为 文件 提供,然后在浏览器中以下载模式打开该 文件 (

  • 我使用camel Rest DSL、camel-swagger-java和camel-servlet组件创建了一个rest Service,然后打包成war文件并部署到Wildfly-11.0.0。最终,但有以下例外: 有没有什么方法可以用camel-swagger-java和camel-servlet构建一个战争文件,可以成功部署在Wildfly-11.0.0上。最终?期待你的回答。提前感谢。

  • 问题内容: 如何告诉Jenkins / Hudson仅针对Git树中特定项目的更改触发构建? 问题答案: Git插件有一个选项(排除的区域),可使用正则表达式根据提交中的文件是否与排除的区域正则表达式匹配来确定是否跳过构建。 不幸的是,当前的Git插件目前没有“包含区域”功能(1.15)。但是,有人在GitHub上发布了可在Jenkins和Hudson上运行的补丁,这些补丁实现了所需的功能。 构建

  • 问题内容: 我希望根据该文件是否已经存在来写一个文件,仅在不存在的情况下才写(实际上,我希望继续尝试文件,直到找到一个不存在的文件为止)。 下面的代码显示在其中一个潜在的攻击者可以插入一个符号,作为建议的方式这篇文章中该文件的测试和写入的文件之间。如果代码以足够高的权限运行,则可能会覆盖任意文件。 有什么办法解决这个问题? 问题答案: 编辑 :另请参见DaveJones的回答:从Python3.3