Service 程序JAR包部署:

  1、守护进程没有主清单文件:

修改pom.xml,追加如下,“mqttjava.MqttJavaMain” 为入口类:

    <build>
<finalName>MqttJavaMain</finalName>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.2.</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>mqttjava.MqttJavaMain</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>

2、后台程序不能正常运行:

d:\>java -jar MqttService.jar
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
at sun.security.util.SignatureFileVerifier.processImpl(Unknown Source)
at sun.security.util.SignatureFileVerifier.process(Unknown Source)
at java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.util.jar.JarVerifier.update(Unknown Source)
at java.util.jar.JarFile.initializeVerifier(Unknown Source)
at java.util.jar.JarFile.getInputStream(Unknown Source)
at sun.misc.JarIndex.getJarIndex(Unknown Source)
at sun.misc.URLClassPath$JarLoader$1.run(Unknown Source)
at sun.misc.URLClassPath$JarLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.misc.URLClassPath$JarLoader.ensureOpen(Unknown Source)
at sun.misc.URLClassPath$JarLoader.<init>(Unknown Source)
at sun.misc.URLClassPath$3.run(Unknown Source)

  解决办法:  删除对应的jar 包下的文件

zip -d MqttService.jar META-INF/*.RSA META-INF/*.DSA META-INF/*.SF

  2、jar包守护运行:

nohup java -jar MqttService.jar >output >& &

Jenkins配置:

JAR包部署:

  1、新建一个maven工程

  

  2、配置SVN仓库&构建策略

    

  3、循环触发,每5MIN触发方式:

    

  4、构建策略

      

//stop.sh
echo "Stopping kitking web"
pid=`ps -ef | grep kitking02-1.0-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "kill -9 的pid:" $pid
kill - $pid
fi
//replace.sh
echo "kitking replace"
cp -f /root/.jenkins/workspace/kitking-adv/target/kitking02-1.0-SNAPSHOT.jar /kitking/tools/
echo "copy finish target jar to kitking tools dir"
//startup.sh
echo "startup kitking"
java -jar /kitking/tools/kitking02-1.0-SNAPSHOT.jar

 Tomcat War包部署:

PATH_TOMCAT:  /kitking/tools/apache-tomcat-7.0.
PATCH_JENKINS: /root/.jenkins/workspace/SynergyWebService/target/com.synergy.demo.war

1. 先运行TOMCAT

cd /kitking/tools/apache-tomcat-7.0./bin
./shutdown.sh
./startup.sh

2. Jenkis配置

  

Jenkins/SynergyWebService表示:

  Jenkins工作空间有一个SynergyWebService项目。

root@instance-282sg05l:~/.jenkins/workspace# pwd
/root/.jenkins/workspace
root@instance-282sg05l:~/.jenkins/workspace# tree -L
.
├── kitking-adv
├── kitking-angular
├── kitking-html5
├── SynergyWebService
└── testMail

项目WAR包部署如下配置:

WAR/EAR files:表示WAR包所在位置。

Context path:    表示部署到Tomcat的应用目录名字,也代表URL的PATH部分

root@instance-282sg05l:/kitking/tools/apache-tomcat-7.0./webapps# pwd
/kitking/tools/apache-tomcat-7.0./webapps
root@instance-282sg05l:/kitking/tools/apache-tomcat-7.0./webapps# tree -L
.
├── docs
├── examples
├── host-manager
├── kitking
├── kitking.war
├── KKI
├── KKIOT
├── manager
├── phonePay
├── ROOT
├── RSI
├── wxpay
└── XaKHgDHMAV.txt

Credentials:    表示Tomcat认证允许,在Tomcat的配置文件中配置:

root@instance-282sg05l:/kitking/tools/apache-tomcat-7.0./conf# pwd
/kitking/tools/apache-tomcat-7.0./conf
root@instance-282sg05l:/kitking/tools/apache-tomcat-7.0./conf# tree
.
├── Catalina
│   └── localhost
├── catalina.policy
├── catalina.properties
├── context.xml
├── logging.properties
├── server.xml
├── tomcat-users.xml
└── web.xml vim ./tomcat-users.xml
<tomcat-users>
<role rolename="manager-gui" />
<role rolename="manager-script" />
<user username="admin" password="meiyoumima" roles="manager-gui, manager-script"/>
</tomcat-users>

Tomcat URL:  这里配置好访问端口

部署后就可以访问了,部署前务必先启动Tomcat,否则Jenkins找不到部署目录(项目配置中,并没有明确配置Tomcat所在目录)。

Docker mysql镜像:

参考:

  https://www.cnblogs.com/jiangzhaowei/p/10989344.html

  创建kitking账户

//1. 登录阿里云
docker login --username= registry.cn-hangzhou.aliyuncs.com //2. 基于容器创建镜像
docker commit -a 'henry' -m 'kitking mysql' 0312a49b4c9d kitking-mysql:1.0 //3. TAG
docker tag c0c4cc516c2e registry.cn-hangzhou.aliyuncs.com/kitking/kitking-mysql:1.0 //4. 推送到阿里云
docker push registry.cn-hangzhou.aliyuncs.com/kitking/kitking-mysql:1.0

DB迁移:

Navicat 数据库迁移:

1.将源数据库下的表迁移出来

2.将表全部迁入目标数据库

重新连接数据库

IDEA在连接数据库时,

运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist

运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist

解决的方法是:

第一步:在管理员命令中输入:
//shell 命令行
mysql_upgrade -uroot -pxxx --force
service mysql restart

JAVA连接:

jdbc:mysql://xxx.com:3306/kksaas?characterEncoding=UTF-8&allowMultiQueries=true

Angular 前端部署:

  自由构建方式

check代码:

NodeJs构建、Nginx部署:

 

iotBaidu问题小结的更多相关文章

  1. 从零开始编写自己的C#框架(26)——小结

    一直想写个总结,不过实在太忙了,所以一直拖啊拖啊,拖到现在,不过也好,有了这段时间的沉淀,发现自己又有了小小的进步.哈哈...... 原想框架开发的相关开发步骤.文档.代码.功能.部署等都简单的讲过了 ...

  2. Python自然语言处理工具小结

    Python自然语言处理工具小结 作者:白宁超 2016年11月21日21:45:26 目录 [Python NLP]干货!详述Python NLTK下如何使用stanford NLP工具包(1) [ ...

  3. java单向加密算法小结(2)--MD5哈希算法

    上一篇文章整理了Base64算法的相关知识,严格来说,Base64只能算是一种编码方式而非加密算法,这一篇要说的MD5,其实也不算是加密算法,而是一种哈希算法,即将目标文本转化为固定长度,不可逆的字符 ...

  4. iOS--->微信支付小结

    iOS--->微信支付小结 说起支付,除了支付宝支付之外,微信支付也是我们三方支付中最重要的方式之一,承接上面总结的支付宝,接下来把微信支付也总结了一下 ***那么首先还是由公司去创建并申请使用 ...

  5. iOS 之UITextFiled/UITextView小结

    一:编辑被键盘遮挡的问题 参考自:http://blog.csdn.net/windkisshao/article/details/21398521 1.自定方法 ,用于移动视图 -(void)mov ...

  6. K近邻法(KNN)原理小结

    K近邻法(k-nearst neighbors,KNN)是一种很基本的机器学习方法了,在我们平常的生活中也会不自主的应用.比如,我们判断一个人的人品,只需要观察他来往最密切的几个人的人品好坏就可以得出 ...

  7. scikit-learn随机森林调参小结

    在Bagging与随机森林算法原理小结中,我们对随机森林(Random Forest, 以下简称RF)的原理做了总结.本文就从实践的角度对RF做一个总结.重点讲述scikit-learn中RF的调参注 ...

  8. Bagging与随机森林算法原理小结

    在集成学习原理小结中,我们讲到了集成学习有两个流派,一个是boosting派系,它的特点是各个弱学习器之间有依赖关系.另一种是bagging流派,它的特点是各个弱学习器之间没有依赖关系,可以并行拟合. ...

  9. scikit-learn 梯度提升树(GBDT)调参小结

    在梯度提升树(GBDT)原理小结中,我们对GBDT的原理做了总结,本文我们就从scikit-learn里GBDT的类库使用方法作一个总结,主要会关注调参中的一些要点. 1. scikit-learn ...

随机推荐

  1. UVALive 5984

    题目链接:Save the Students! #include<stdio.h> #include<string.h> #include<iostream> #i ...

  2. SSO-CAS单点登录

    基本概念 单点登录SSO ,是目前比较流行的企业业务整合的解决方案之一.SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. CAS(Centeral Authenti ...

  3. 使用scrapy-redis构建简单的分布式爬虫

    前言 scrapy是python界出名的一个爬虫框架.Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. 虽然scr ...

  4. win7下android开发环境搭建(win7 64位)

    win7下android开发环境搭建(win7 64位)   一.安装 JDK 下载JDK最新版本,下载地址如下: http://www.oracle.com/technetwork/java/jav ...

  5. 1.1 C++布尔类型(bool)

    注意: c++ 中 cout << true << endl;  输出为 1: 布尔类型(bool)是C++新增的一种基本数据类型.在标准的C语言中并未定义bool类型,如果需 ...

  6. 关于学习JAVA程序设计语言的回顾与展望

    回顾篇 时光荏苒,大学生活已然过半.看了老师分享的几篇博文,我的内心是震憾并且惭愧的.相比别人,自己做的实在是不够多,不够好.在刚刚结束的大二上半学期,我学习了JAVA初级程序设计,虽然每节课都认真听 ...

  7. 仿sql注入 sql

    <?phpclass sqlsafe { //(and|or)\\b 表示以and和or结尾的单词如:aand,band,都可以匹配//如果匹配and或or则使用 \\b(and|or)\\b来 ...

  8. WiFi Pineapple的Karma攻击与原理探究

    WiFi钓鱼是一种被炒烂了的安全威胁,你几乎每天都能从电视.网络媒体中看到因误连了恶意WiFi导致大笔资金失窃的案例,并且很多媒体语不惊人死不休的报道风格总是能把当事人的受害过程删减修饰到灵异的程度. ...

  9. 利用Teensy进行em410x卡模拟以及暴力破解em410x类门禁系统

    什么是低频?什么是EM410x? 首先,我不得不再次提一下那些工作在125khz频率下的低频卡(如:EM410X之类的),以便大家更好的阅读以下的内容. 什么是低频?以下就是低频的解释: 低频(LF, ...

  10. python3.6 ubuntu

    apt-get install python3.6-dev 安装 pip install mysqlclient 必备