融汇复习一下之前学的SpringCloud
首先我要在服务器安装一个数据库,我先选择用Oraclexe(有限制的免费版),用docker安装一下先
https://dev.aliyun.com/detail.html?spm=5176.1972343.2.194.2f075aaaHY4aOv&repoId=5682
docker pull registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g
稍等下安装完成后指定端口用容器运行他
docker run -d -p 50111:22 -p 1521:1521 registry.cn-hangzhou.aliyuncs.com/qida/oracle-xe-11g
我们用plsql工具连接他看看可以不,由说明说的默认密码都是oracle 实例名是xe
连了一下显示超时,这是因为默认服务器没有开放1521端口来设置一下
设置好就可以去访问了,用系统用户访问,后创建个用户来耍一耍例如sola并给他设置一个dba角色
然后我们就可以愉快的建立一个表,愉快的查询一下
我们来建立一个普通的springboot写个查询接口来测试看看有什么问题不
嗯。。首先运行java程序得在linux 安装 jdk 正好一会可以看看有没有一个问题(docker 的jdk问题)
来安装下jdk
https://blog.csdn.net/evan_chen_1/article/details/55097252
我们先来快速简单安装方法yum
yum install java-1.8.0-openjdk java-1.8.0-openjdk-devel
中途会询问,安装完成显示Complete! 看看版本安装成功没
嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯嗯,下面我们可以去编写JAVA代码了
建立个springboot项目加入这些依赖
4.0.0
com.sola
Sola-User
1.0.0
jar
Sola-User
ForUser
org.springframework.boot
spring-boot-starter-parent
2.0.5.RELEASE
UTF-8
UTF-8
1.8
org.springframework.boot
spring-boot-starter-web
org.mybatis.spring.boot
mybatis-spring-boot-starter
1.3.2
com.oracle
ojdbc14
10.2.0.4.0
org.springframework.boot
spring-boot-starter-test
test
io.springfox
springfox-swagger2
2.7.0
io.springfox
springfox-swagger-ui
2.7.0
org.springframework.boot
spring-boot-maven-plugin
差不多了,然后去写配置文件,大概就这么写写
server:
port: 35520
spring:
application:
name: SOLAUSER
datasource:
url: jdbc:oracle:thin:@99.99.99.99:1521:xe
username: sola
password: sola
driver-class-name: oracle.jdbc.driver.OracleDriver
mybatis:
mapper-locations:
- classpath*:com/sola/mappers/**/*.xml
项目结构就这样,代码只是一个select * 的查询
然后去运行 swagger去测试可以出数据,然后我们就要正常的打包去linux上部署一下看看会出啥问题
打包pom配置
org.springframework.boot
spring-boot-maven-plugin
exec
org.apache.maven.plugins
maven-surefire-plugin
true
src/main/resources
**/*.properties
**/*.xml
**/*.tld
false
src/main/java
**/*.properties
**/*.xml
**/*.tld
false
在打包的时候出了一个问题 提示
The requested profile "pom.xml" could not be activated because it does not e
大概是说和pom相关有问题网上搜了一下 解决方法是
右键项目属性然后选择maven
之前框里有pom.xml,删掉框内容对勾留着应用貌似就可以了
然后又出了个问题 运行后控制台报错
2018-10-08 15:39:27.948 WARN 15372 --- [io-35520-exec-2] com.zaxxer.hikari.util.DriverDataSource : Registered driver with driverClassName=oracle.jdbc.driver.OracleDriver was not found, trying direct instantiation.
解决方法
driver-class-name: oracle.jdbc.driver.OracleDriver
改成了
driver-class-name: oracle.jdbc.OracleDriver
(搞了一下午的各种bug原因是因为我服务器太慢了。。。。)
嗯 最后运行是可以运行的 就是第一次运行要等很久很久
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
上面既然都可以了 往上扔一个Eureka服务器试试=。=
先建立个springboot工程再加入各种依赖(就加一个EurekaServer依赖),然后启动类添加开启注解。
我们这里就用一个eurekaServer(暂时不高可用),所以在配置中指定端口,并注册自己
server:
port: 35020
eureka:
client:
service-url:
defaultZone: http://localhost:30520/eureka/
运行一下看看,没问题的话 打个jar包扔到服务器上去
嗯。。。。。。。。。。。。。。。。。果按之前写的配置文件有问题
改了之后还出了一点问题
选了第一个启动项目,又报错了= =0
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2018-10-11 14:12:22.200 ERROR 17916 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Failed to bind properties under 'eureka.client.service-url' to java.util.Map:
Reason: No converter found capable of converting from type [java.lang.String] to type [java.util.Map]
Action:
Update your application's configuration
刨坑发现点进配置里,要放入map值
又设置成之前yml配置,还是报错= =0,仔细一看 自己配置的端口号都不一样,真是个逗比!
运行完没问题,扔到服务器上看看
运行成功,但是有个小问题,日志的问题,让后台运行的话就完全看不到控制台的内容了,所以还要设置一个log日志
在配置文件中加入,就在根目录输出日志了
logging:
file: springcloud.log
然后linux运行jar命令
java -jar xxx.jar
但是上面这个命令虽然运行了但是窗口一关就关闭服务了,所以下面有个加强版命令
java -jar xxx.jar &
输入完上面后再ctrl+z 输入exit 退出窗口,程序依然运行 如果想关闭服务 就得去查找 然后kill了他
查找占用30520端口的进程
netstat -nlp |grep :30520
OK第一部分完结