zoukankan      html  css  js  c++  java
  • 在Linux系统上安装Spring boot应用

    Unix/Linux 服务

    systemd 服务

    操作过程

    1. 安装了JDK的centOS7虚拟机

    注意下载linux版本JDK的时候不能直接通过wget这种直接链接下载,否则会解压不成功,应该打开原官网,点击同意许可后点击下载(这种方式下载很慢),比较好的方式是复制下载页的地址到迅雷,通过迅雷打开该下载页,同意许可后点击下载。

    下载后解压、配置环境变量

    tar -zxvf jdk1.8.0_211.jar.gz
    

    环境变量配置:/etc/profile 文件最后添加如下

    export JAVA_HOME=/var/java/jdk1.8.0_211
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin

    添加环境变量之后,执行source /etc/profile,让环境变量生效

    2. 准备好要安装的spring boot应用程序
    2.1 要想安装成功,尤其要注意pom文件的有关插件的配置。正确示例如下:
    <build>
       <plugins>
         <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
           <configuration>
             <mainClass>com.itsherman.dcm.Application</mainClass>
             <executable>true</executable>
           </configuration>
           <executions>
             <execution>
               <goals>
                 <goal>repackage</goal>
               </goals>
             </execution>
           </executions>
         </plugin>
       </plugins>
     </build>

    如果只单单声明了spring-boot-maven-plugin插件,忽略了后面的配置项,那么很可能你构建的程序包(jar)移植过去启动不成功。报找不到主菜单属性错误。

    上面的问题主要是因为构建的可执行jar包中有一个META_INF文件夹,该文件夹下的MANIFEST.MF文件描述了改程序包的主要信息,其中缺少了Main-Class的一行。解决办法是我们可以手动加上,或者按照上面的配置,尤其不能缺少execution的配置项,然后重新执行mvn install。重新生成jar包以后通过winrar工具打开,检查MANIFEST.MF文件的信息。

    一般完整的文件信息如下:

    Manifest-Version: 1.0
    Archiver-Version: Plexus Archiver
    Built-By: Sherman
    Start-Class: com.itsherman.dcm.Application
    Spring-Boot-Classes: BOOT-INF/classes/
    Spring-Boot-Lib: BOOT-INF/lib/
    Spring-Boot-Version: 2.1.5.RELEASE
    Created-By: Apache Maven 3.6.0
    Build-Jdk: 1.8.0_172
    Main-Class: org.springframework.boot.loader.JarLauncher
    

    没问题之后,可以尝试在本地使用java -jar myapp.jar 命令执行一下

    3. 通过xftp等文件移植工具将jar包移植到【1】 步骤的虚拟机上
    4. 在虚拟机上 /etc/systemd/system 下编写服务的配置文件,参考实例如下:
    [Unit]
    Description=myapp
    After=syslog.target
    
    [Service]
    User=hadoop
    ExecStart=/var/java/jdk1.8.0_211/bin/java -jar /home/hadoop/myapp/dev-manager.jar
    SuccessExitStatus=143
    
    [Install]
    WantedBy=multi-user.target
    • Description: 程序的描述信息
    • User: 系统用户
    • ExecStart: 程序启动的命令

    编写好改配置文件之后,保存,退出

    . 启动服务

    刷新服务配置信息

    systemctl daemon-reload
    

    启动服务

    systemctl start myapp.service
    

    开机启动服务

    systemctl enable myapp.service
    

    查看服务状态信息

    systemctl status myapp.service
    
    6.测试

    即打开浏览器,访问服务

  • 相关阅读:
    什么是跨域
    w3c标准
    什么是域名?什么网站名?什么是URL?
    meta是什么意思?
    什么是HTML、XML和XHTML
    html4.0.1,h5,xhml,文档声明区别
    checkbox 点击全选
    【今日CV 计算机视觉论文速览】Fri, 22 Mar 2019
    【机器翻译】API接口总结
    【今日CV 计算机视觉论文速览】Fri, 22 Mar 2019
  • 原文地址:https://www.cnblogs.com/yumiaoxia/p/10949694.html
Copyright © 2011-2022 走看看