You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将JHipster 6.8.0微服务项目从OpenShift迁移部署至Tomcat服务器

JHipster 6.8.0 微服务迁移至Tomcat部署实操方案

基础项目适配修改

  • 调整打包配置
    Maven项目:修改pom.xml的<packaging>标签值从jar改为war,新增Tomcat依赖配置:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>provided</scope>
    </dependency>
    
    Gradle项目:修改build.gradle,新增war插件声明,调整Tomcat依赖范围:
    apply plugin: 'war'
    ...
    providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
    
  • 启动类适配
    修改项目主启动类,继承SpringBootServletInitializer,重写configure方法,示例如下:
    @SpringBootApplication
    public class YourServiceApp extends SpringBootServletInitializer {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(YourServiceApp.class);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(YourServiceApp.class, args);
        }
    }
    

JHipster 特有配置调整

  • 上下文路径配置:在application-*.yml中新增server.servlet.context-path配置,值为你计划部署的Tomcat上下文路径,例如部署到/order-service则配置对应值,避免静态资源、接口路径404。
  • 前端资源适配:修改前端打包配置webpack.common.js中的publicPath参数,值和上文的上下文路径保持一致,例如publicPath: '/order-service/'。
  • 内嵌容器配置清理:删除或注释application-*.yml中所有server.tomcat、server.undertow开头的内嵌容器专属配置,避免和外部Tomcat冲突。
  • 环境变量适配:原OpenShift中注入的环境变量、配置参数,可在Tomcat的bin/setenv.sh(Linux)或bin/setenv.bat(Windows)中配置,保持和原有环境参数一致即可。

打包与部署验证

  • 执行打包命令:Maven使用mvn clean package -P{你的启用profile,如prod},Gradle使用./gradlew clean bootWar -P{你的启用profile,如prod},打包完成后在target(Maven)或build/libs(Gradle)目录获取生成的war包。
  • Tomcat版本要求:JHipster 6.8.0对应Spring Boot 2.2.x版本,必须使用Tomcat 9.0.x版本部署,禁止使用Tomcat 10及以上版本,Tomcat 10使用Jakarta EE规范,与当前版本依赖的Java EE规范不兼容。
  • 部署操作:将war包放入Tomcat的webapps目录,启动Tomcat,查看日志确认无报错,JHipster启动标识正常输出即为部署成功。

微服务部署额外注意事项

  • 注册中心配置:若使用JHipster Registry、Consul等注册中心,需确认配置中注册中心地址正确,服务实例上报的IP、端口为当前Tomcat的IP和端口。
  • 多服务部署规则:三个微服务部署到同一个Tomcat实例时,需保证三个服务的上下文路径完全不同;部署到不同Tomcat实例时,需修改每个Tomcat的HTTP、SHUTDOWN、AJP端口,避免端口冲突。

内容的提问来源于stack exchange,提问作者Muhammad Yawar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 17:57:05