首先你的阿里雲服務器需要預先配置好:jdk環境,maven環境,mysql環境,nacos環境+其他項目需要的中間件環境(redis,zk等)
踩的坑記錄。
1.
第一個坑:本地把項目打包(maven install)之后放到阿里雲服務器上執行java -jar xxx.jar報錯:
服務器上springboot項目啟動時報錯 no main manifest attribute, in XXX1.0.0-SNAPSHOT.jar
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
這是因為jar包啟動的時候沒有指定主類,在pom文件的build中加上上面的spring-boot-maven-plugin插件即可。
2.
第二個坑,配置好插件之后再執行:
java -jar xxx.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at com.xxx.config.xxxApplication.main(xxxApplication.java:23)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
因為我的阿里雲服務器沒有配置maven,導致啟動的時候報錯
3.maven裝好
啟動maven 失敗,由於我的阿里雲服務器配置的是openjdk,更改 為oracle jdk,再配置下即可完成
4.maven安裝好后,啟動dubbo服務成功。
5.api服務本地啟動后,請求阿里雲nacos中注冊的dubbo服務失敗
調試后發現nacos中注冊地址為阿里雲的私網地址。
在dubbo服務的配置文件中加上
spring:
application:
name: dubbo01-server
cloud:
inetutils:
ignored-interfaces: eth.*
preferred-networks: 阿里雲的公網地址
6.啟動之后,nacos控制台中的注冊地址就變成了公網地址。
7.注意開通阿里雲dubbo的端口