jar部署与启动/关闭

1.打包

clean 清理已有target目录

package 重新打包

获取打包路径,通过 scp命令发送到服务器端,scp -P ${port} ${.jar} ${user}@${ip}:/${target-absolote-path}。 此处无需密码,已登记公钥于服务器端。
2.服务端启动关闭脚本

启动脚本:

#!/bin/sh

rm -f tpid_summary

nohub java -jar server/rosetta-0.0.1-SNAPSHOT.jar > /dev/null 2>&1 &

echo $! > tpid_summary

echo Start Success!

注: jar 启动时,注意命令前追加 nohub 指令 ,  即 不挂断的执行命令. 避免,shell关闭造成Java应用的关闭

关闭脚本:

#!/bin/sh
tpid=`cat tpid_summary | awk '{print $1}'`
tpid=`ps -aef | grep $tpid | awk '{print $2}' | grep $tpid `
if [ ${tpid} ]; then
kill -9 $tpid
fi

3.执行测试

启动及运行相关错误可通过日志查看。重点在于SpringBoot 2.0.*需要JDK1.8以上版本,/etc/profile中的JAVA_HOME路径需指向8及以上版本的JDK。

查看配置:echo $JAVA_HOME

推荐profile修改,不推荐直接export。

修改完毕后,source 重载配置

jar的部署较为简单,无需赘述。

war于Tomcat下的部署与启动

1.配置tomcat无需多写,一般只需修改 conf/server.xml相关端口即可

2.打war包

2.1 pom.xml中packaging jar>war

    <groupId>net.rosetta</groupId>
<artifactId>rosetta</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>

2.2 打包时剔除tomcat组件

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

2.3 原main方法启动类无需变更,同级目录新增下述 SpringBootStartApplication 类即可

public class SpringBootStartApplication extends SpringBootServletInitializer {

    @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
// 指向用main方法执行的application启动类
return builder.sources(TextclfApplication.class);
}
}

2.4 clean package 发送war包至tomcat /webapps下

2.5 command

2.5.1 jar转war的核心在于应用入口的变更 , 只需继承SpringBootServletInitializer类,并实现起configure方法即可,此处也可以不用新建启动类,在原启动类的基础上新增上述代码即可.

2.5.2 由于SpringBoot的自动装配功能,提高了开发效率的同时,也回造成麻烦,如下异常:

org.springframework.beans.factory.BeanCreationException:
   Error creating bean with name 'dataSource' defined in class path resource
    [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Tomcat.class]:
      Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException:
      Failed to instantiate [org.apache.tomcat.jdbc.pool.DataSource]: Factory method 'dataSource' threw exception;
      nested exception is org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException:
        Failed to determine a suitable driver class

这一问题的关键在于,springboot项目启动默认会去寻找dataSource的配置,而很多时候应用中不必有与关系型数据库的交互,此时需要在auto-config时取消 DataSourceAutoConfiguration类的调度,代码如下:

@SpringBootApplication(exclude ={DataSourceAutoConfiguration.class} )
public class ImageRetrievalApplication extends SpringBootServletInitializer { @Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(ImageRetrievalApplication.class);
} public static void main(String[] args) {
SpringApplication.run(ImageRetrievalApplication.class, args);
}
}

注意 : 有些博客提示为添加 EnableAutoConfiguration注解,然而SpringBoot 1.2就已在SpringBootApplication整合了该注解,其对应的功能已包含,无需画蛇添足.

3.启动tomcat

bin/startup.sh 启动

bin/shutdown.sh 关闭

再次强调,JDK版本为1.8+

启动日志可于 /logs/catalina.out中查看。

注意:默认访问路径为:ip:port/project-name/request-mapping。同时,页面调用路径需设为相对路径,即去除 "/"

ps:Ubuntu下开发,windows大同小异

SpringBoot部署jar与war的更多相关文章

  1. docker部署jar、war包方法

    一.将war包放入容器 1.# docker imagesREPOSITORY                         TAG                 IMAGE ID         ...

  2. springboot 部署jar项目与自启动

    1.项目路径 jar包路径:/usr/local/src/apps/govdata.jar 2.启动项目 nohup java -jar govdata.jar & 3.查看项目启动日志 ta ...

  3. SpringBoot 项目 部署 jar方式

    SpringBoot部署-jar方式 步骤1部署方式 Springboot 和我们之前学习的web 应用程序不一样,其本质上是一个 Java 应用程序,那么又如何部署呢?  通常来说,Springbo ...

  4. SpringBoot系列——jar包与war包的部署

    前言 Spring Boot支持传统部署和更现代的部署形式.jar跟war都支持,这里参考springboot参考手册学习记录 两种方式 jar springboot项目支持创建可执行Jar,参考手册 ...

  5. 关于springboot项目的jar和war两种打包方式部署的区别

    关于springboot项目的jar和war两种打包方式部署的区别 关于springboot项目的jar和war两种打包方式部署的区别? https://bbs.csdn.net/topics/392 ...

  6. SpringBoot小技巧:Jar包换War包

    SpringBoot小技巧:Jar包换War包 情景 我们都知道springBoot中已经内置了tomcat,是不需要我们额外的配置tomcat服务器的,但是有时这也可能是我们的一个瓶颈,因为如果我们 ...

  7. SpringBoot打包项目成war包,并部署到服务器的tomcat上

    最近遇到项目需要上线部署到服务器,需要讲自己的SpringBoot项目打包成war包,部署到tomcat上. 下面记录下打包部署的过程. (1) 将SpringBoot项目打包成war包, 一.修改打 ...

  8. 配置SpringBoot方便的切换jar和war

    配置SpringBoot方便的切换jar和war 网上关于如何切换,其实说的很明确,本文主要通过profile进行快速切换已实现在不同场合下,用不同的打包方式. jar到war修改步骤 pom文件修改 ...

  9. springboot打成jar包和war包的两种方式,并引入第三方jar包!

    springboot打成jar包和war包的两种方式,并引入第三方jar包! 首先把需要引入的第三方jar包引入到本地项目中,在引用的模块下加一个lib文件夹 一.打成jar包 1.修改pom文件里的 ...

随机推荐

  1. 实战Asp.Net Core:DI生命周期

    title: 实战Asp.Net Core:DI生命周期 date: 2018-11-30 21:54:52 --- 1.前言 Asp.Net Core 默认支持 DI(依赖注入) 软件设计模式,那使 ...

  2. for 循环 以及基本的数据类型

    for 循环: for 关键字 i 变量(此处可以更改 更改规则参考变量命名规则) in 关键字 可迭代对象 (想要循环谁就放谁,注意:数字除外 因为数字不可迭代) for 循环内可以进行任意操作,可 ...

  3. koa-router

    为了处理URL,我们需要引入koa-router这个middleware,让它负责处理URL映射. 我们把上一节的hello-koa工程复制一份,重命名为url-koa. 先在package.json ...

  4. Python-Requests库详解

    查看一下是否安装requests库 什么是Requests Requests是用python语言基于urllib编写的,采用的是Apache2 Licensed开源协议的HTTP库如果你看过上篇文章关 ...

  5. python_内置函数1_42

    内置函数 内置函数大全:     Built-in Functions     abs() dict() help() min() setattr() all() dir() hex() next() ...

  6. pdf转eps后存在大片空白的处理

    之前pdf转eps的方式是用acrobat直接转,发现每次转完后,图片都显示在一张A4纸上,插入到论文中时会出现大片空白:但在pdf中是没有这么多空白的,与裁剪没关系. 后来在 http://tex. ...

  7. 第四章 MyBatis-SQL映射文件

    MyBatis 真正的强大在于映射语句,专注于SQL,功能强大,SQL映射的配置却是相当简单 SQL映射文件的几个顶级元素(按照定义的顺序) mapper - namespace cache - 配置 ...

  8. Velocity ${} 和$!{}、!${}区别

    前言 在使用Velocity时经常会看到三种使用变量的情况 情况一:${name} 情况二:$!{name} 情况三:!${name} 那么三者之间到底有什么区别呢?莫慌!!!哈哈 情况一:${nam ...

  9. 【知乎】WinForm 与 WPF的区别

    你想上班 那么针对公司需求学如果只是自己写着玩 那么区分一下1.你的程序运行在 自己机器a.一个工具而已 要的是cooooooool 那么WPFb.一个工具而已 要的是useful easy 那么wi ...

  10. css3 text-shadow字体阴影讲解

    text-shadow:为字体添加阴影, 可以通过对text-shadow属性设置相关的属性值,来实现现一些需要的字体阴影效果,减少了图片的使用. 基础说明:    text-shadow: X轴  ...