Spring Boot版本:2.1.3

Tongweb版本:7.0.4.2

数据库:达梦V8

 

第一步:排除内置Tomcat,在pom中更改此依赖,其他方式可自行百度

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-web</artifactId>

<!-- 去除内嵌tomcat -->

<exclusions>

<exclusion>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

</exclusion>

</exclusions>

</dependency>

第二步:将打包方式更改为 war

<packaging>war</packaging>

第三步:修改启动类

使启动类继承 SpringBootServletInitializer 类,并重写 configure 方法

@SpringBootApplication

public class DemoApplication extends SpringBootServletInitializer {

@Override

protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

return builder.sources(DemoApplication.class);

}

public static void main(String[] args) {

SpringApplication.run(DemoApplication.class, args);

}

}

注意:

1、使用Tomcat部署没有问题,但是在TongaWeb下出现java.lang.NoSuchMethodError:javax.validation.spi.ConfigurationState.getValueExtractors()Ljava/util/Set;

Caused by: java.lang.ClassNotFoundException:
javax.validation.ParameterNameProvider

因为tomcat不带javax.validation,而TongWeb带javax.validation,使用版本不一致导致。

解决方式:把TongWeb安装目录lib下的validation-api删除替换为应用中的validation-api,我的是validation-api-2.0.1.Final.jar

2、一个容器中部署多个应用出现

Caused by:
org.springframework.jmx.export.UnableToRegisterMBeanException: Unable to
register MBean [org.springframework.cloud.context.environment.EnvironmentManager@3ebe27fc]
with key 'environmentManager'; nested exception is
javax.management.InstanceAlreadyExistsException:
org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager

原因:spring.jmx是默认打开的,所以有两种解决办法

    办法1:spring.jmx.enabled=false

    办法2:在application中各自配置

        spring.jmx.default-domain=project1

        spring.jmx.default-domain=project2

        以保证domain是两个不一样的

后端部署的时候注意后缀改成前端做配置的后缀

前端将之前的zip包后缀名改为war部署即可,注意前端文件直接打成zip后改名,不可将外层的文件夹打成zip包

达梦数据库踩坑:

1、 tongweb不支持log4jdbc,以下写法连不上数据库(我没找到解决方法)

datasource:

 
url:
jdbc:log4jdbc:dm://127.0.0.1:5236/SYSDBA?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

  username: SYSDBA

  password: SYSDBA

  driver-class-name: net.sf.log4jdbc.DriverSpy

2、将达梦数据库驱动包作为lib放在项目文件夹里面,并在pom添加依赖,这种做法会导致报驱动类classNotFound错误

3、正确做法:将jar包安装至本地maven仓库

mvn
install:install-file -Dfile=电脑本地目录\DmJdbcDriver18.jar -DgroupId=com.dm -DartifactId=DmJdbcDriver18 -Dversion=1.8 -Dpackaging=jar

pom添加

 <dependency>

   <groupId>com.dm</groupId>

   <artifactId>DmJdbcDriver18</artifactId>

   <version>1.8</version>

</dependency>

数据库配置

datasource:

 
driver-class-name: dm.jdbc.driver.DmDriver

  url: jdbc:dm://127.0.0.1:5236/SYSDBA?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

  username: SYSDBA

  password: SYSDBA

4、       前端页面刷新404问题

原因解析:

之所以你在浏览器内可以由首页跳转到其他路由地址,是因为这是由前端自行渲染的,你在React Router定义了对应的路由,脚本并没有刷新网页访问后台,是JS动态更改了location。

当你刷新时,你首先是访问的后台地址,然后返回的页面内加载了React代码,最后在浏览器内执行;也就是说如果这个时候报404,是因为你后台并没有针对这个路由给出返回HTML内容,也谈不上执行React Router了。

之前用的是nginx,在nginx中配置了try_files

现在解决方式为在tongweb的安装目录conf/ default-web.xml中添加

<error-page>

<error-code>404</error-code>

<location>/index.html</location>

</error-page>

5、       前端项目部署的时候有前缀导致访问404,此处需要前端同学打包的时候base设置为相同的前缀名。

SpringBoot项目迁移到tongweb的更多相关文章

  1. 记录SSM框架项目迁移SpringBoot框架-----pom.xml的迁移

    第一步:迁移pom.xml文件(去除spring相关的依赖) SSM中的pom: <project xmlns="http://maven.apache.org/POM/4.0.0&q ...

  2. 老项目迁移到springboot之后,上线服务器出现404的解决方法

    原因是老项目迁移到springboot之后,已经不再使用web.xml的配置了,但是WEB-INF目录下还有web.xml,所以才导致的404,所以只需要在源码处删除整个WEB-INF重新build即 ...

  3. docker 运行jenkins及vue项目与springboot项目(五.jenkins打包springboot服务且在docker中运行)

    docker 运行jenkins及vue项目与springboot项目: 一.安装docker 二.docker运行jenkins为自动打包运行做准备 三.jenkins的使用及自动打包vue项目 四 ...

  4. 废弃fastjson!大型项目迁移Gson保姆级攻略

    前言 大家好,又双叒叕见面了,我是天天放大家鸽子的蛮三刀. 在被大家取关之前,我立下一个"远大的理想",一定要在这周更新文章.现在看来,flag有用了... 本篇文章是我这一个多月 ...

  5. Springboot项目架构设计

    导航 前言 流水线 架构的艺术 项目架构 理解阿里应用分层架构 superblog项目架构 结语 参考 本节是<Spring Boot 实战纪实>的第7篇,感谢您的阅读,预计阅读时长3mi ...

  6. 如何将Eclipse中的项目迁移到Android Studio 中

    如何将Eclipse中的项目迁移到Android Studio 中 如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的 ...

  7. .NET 4.5+项目迁移.NET Core的问题记录

    .NET 4.5+项目迁移.NET Core的问题记录 这几天试着把目前的开发框架迁移到新的.net core平台,中间遇到的问题在这里简单记录一下. 迁移过程遇到的最大的问题IOC容器.我目前使用的 ...

  8. eclipse项目迁移到android studio(图文最新版)

    前言 最近Android studio(下文简称AS)官方发布了正式版,目前火得不行.个人认为主要是因为android是google自家的产品,AS也是他自己搞的IDE,以后的趋势android开发肯 ...

  9. 使用外部容器运行spring-boot项目:不使用spring-boot内置容器让spring-boot项目运行在外部tomcat容器中

    前言:本项目基于maven构建 spring-boot项目可以快速构建web应用,其内置的tomcat容器也十分方便我们的测试运行: spring-boot项目需要部署在外部容器中的时候,spring ...

  10. NodeJS项目迁移兼Ubuntu下NodeJS环境部署

    前言 之前做的几个项目都托管在阿里云服务器,但是最近要到期了.想着到底要不要续期,毕竟100/月.后面看着阿里云有个活动,800/三年.果断买下.环境部署折腾了一天,其中也遇到几个坑. 目录 一.安装 ...

随机推荐

  1. 在linux上安装UG for Linux 64

    改编自 https://bbs.deepin.org/post/182574 下载: https://www.jb51.net/softs/584557.html 安装依赖 libxm4:i386.l ...

  2. ubuntu22.04使用libmysqlclient-dev,在包含mysql.h时会出现‘net_async_status’未声明

    //mysql Ver 8.0.41-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu)) //库文件是libmysqlclient-dev //在使用 g+ ...

  3. Springboot笔记<4>@Autowired和@Resource的区别

    @Autowired和@Resource的区别 @Resource 有两个常用属性name.type,所以分4种情况 指定name和type:通过name找到唯一的bean,找不到抛出异常:如果typ ...

  4. 偶斐波那契数列性质与欧拉计划第2题 Properties of Even Fibonacci numbers and Project Euler problems 2

    Problem 2 Even Fibonacci numbers Each new term in the Fibonacci sequence is generated by adding the ...

  5. [CF1672G]Cross Xor

    G - Cross Xor 对于\((n\&1)\&\&(m\&1)\)的情况,所有行.列的异或和的必须相等(异或和指当前行/列中所有元素的异或和) 每次修改的点\(( ...

  6. vert.x 初识

    中文文档:https://vertx-china.github.io/ 官方文档:https://vertx.io/ 客户端仓库模块:https://github.com/vert-x3/vertx- ...

  7. 证明:C++ std::shared_ptr的引用不会增加它的计数值

    #include <thread> #include <memory> #include <Windows.h> int main() { std::thread ...

  8. 如何基于three.js(webgl)引擎架构,实现3D医院、3D园区导航,3D科室路径导航

    一.前言 在这个日新月异的科技时代,技术的价值不仅在于推动社会的进步,更在于如何更好地服务于人民.医院三维导航系统项目,正是技术服务于人民理念的生动体现,真正从患者出发,解决患者在复杂的医院园区找科室 ...

  9. java 中 sleep & wait 的区别

    简介 简单来说 一个和线程同步有关, 一个单纯的线程延迟等待. 1.sleep是线程中的方法,但是wait是Object中的方法. 2.sleep方法不会释放lock,但是wait会释放,而且会加入到 ...

  10. PostgreSQL Docker部署指南

    1. Docker compose version: '3' services: postgresql: container_name: postgresql image: 'rapidfort/po ...