SpringBoot部署和前端連接問題解決的完整指南(net::ERR_CONNECTION_REFUSED)
1. JAR 文件無法運行:no main manifest attribute
問題描述
在運行 Spring Boot 生成的 JAR 文件時,可能會遇到以下錯誤:
no main manifest attribute, in ShunFengServer-0.0.1-SNAPSHOT.jar
問題原因
這個錯誤表示 JAR 文件中缺少 Main-Class 屬性,導(dǎo)致 Java 無法找到程序的入口點(即 main 方法)。
解決方法
1.1 檢查 pom.xml 配置
確保在 pom.xml 中正確配置了 spring-boot-maven-plugin,以便生成可執(zhí)行的 JAR 文件。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.7.0</version> <!-- 使用適合你的 Spring Boot 版本 --> <executions> <execution> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> </build>
1.2 重新打包項目
在項目根目錄下運行以下命令,重新生成 JAR 文件:
mvn clean package
生成的 JAR 文件會位于 target
目錄中。
1.3 檢查生成的 JAR 文件
使用以下命令檢查生成的 JAR 文件是否包含 Main-Class
屬性:
unzip -p ShunFengServer-0.0.1-SNAPSHOT.jar META-INF/MANIFEST.MF
確保輸出中包含類似以下內(nèi)容:
Main-Class: org.springframework.boot.loader.JarLauncher Start-Class: com.douyin.shunfengserver.ShunFengServerApplication
1.4 手動指定主類運行
如果重新打包后仍然缺少 Main-Class
屬性,可以手動指定主類運行 JAR 文件:
java -cp ShunFengServer-0.0.1-SNAPSHOT.jar com.douyin.shunfengserver.ShunFengServerApplication
2. 前端無法連接后端服務(wù):net::ERR_CONNECTION_REFUSED
問題描述
在瀏覽器中訪問前端頁面時,可能會遇到以下錯誤:
Failed to load resource: net::ERR_CONNECTION_REFUSED
問題原因
這個錯誤表示瀏覽器無法連接到指定的服務(wù)器地址(127.0.0.1:8080
)??赡艿脑虬ǚ?wù)器未啟動、網(wǎng)絡(luò)問題、跨域問題等。
解決方法
2.1 檢查服務(wù)器是否啟動
確保 Spring Boot 應(yīng)用已經(jīng)成功啟動,并且正在監(jiān)聽 8080
端口。
在服務(wù)器上運行以下命令,檢查是否有進(jìn)程正在監(jiān)聽
8080
端口:
netstat -tuln | grep 8080
如果輸出為空,說明服務(wù)器未啟動或未監(jiān)聽
8080
端口。啟動 Spring Boot 應(yīng)用:
java -jar ShunFengServer-0.0.1-SNAPSHOT.jar
2.2 檢查服務(wù)器地址
確保瀏覽器訪問的地址正確。
- 如果 Spring Boot 應(yīng)用運行在本地,確保瀏覽器訪問的是
http://127.0.0.1:8080
或http://localhost:8080
。 - 如果 Spring Boot 應(yīng)用運行在遠(yuǎn)程服務(wù)器上,確保瀏覽器訪問的是服務(wù)器的公網(wǎng) IP 或域名,例如
http://your-server-ip:8080
。
2.3 檢查跨域問題
如果前端頁面和后端服務(wù)運行在不同的域名或端口上,可能會觸發(fā)瀏覽器的跨域限制。
在后端服務(wù)中啟用跨域支持。可以在 Spring Boot 中添加以下配置:
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; @Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") .allowedOrigins("*") // 允許所有域名訪問 .allowedMethods("GET", "POST", "PUT", "DELETE") // 允許的 HTTP 方法 .allowedHeaders("*") // 允許所有請求頭 .allowCredentials(true) // 允許攜帶憑證(如 Cookie) .maxAge(3600); // 預(yù)檢請求緩存時間 } }
2.4 檢查網(wǎng)絡(luò)連通性
確??蛻舳撕头?wù)器之間的網(wǎng)絡(luò)連接正常。
- 在客戶端機(jī)器上,使用
ping
命令測試服務(wù)器的連通性:
ping your-server-ip
- 使用
telnet
命令測試端口是否開放:
telnet your-server-ip 8080
- 如果連接失敗,說明網(wǎng)絡(luò)或防火墻配置有問題。
2.5 檢查防火墻和安全組
確保服務(wù)器的防火墻或安全組允許 8080
端口的訪問。
- 如果使用云服務(wù)器(如阿里云、騰訊云),檢查安全組規(guī)則,確保
8080
端口對外開放。
3. HTTPS 和 HTTP 混用問題
問題描述
在部署 Spring Boot 應(yīng)用時,可能會遇到以下錯誤:
java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x010x060xe00x010x000x060xdc0x030x030x110x060xb40x870xd80x060x93a0x0f0x9e0x8d0xaa0xb6^c0xe00x910xe70xed0x160xf20x0ce0x8dY0x82oRm0x0b0xb1' ]. HTTP method names must be tokens
問題原因
這個錯誤通常是由于客戶端嘗試通過 HTTP 協(xié)議訪問 HTTPS 端口,或者服務(wù)器配置了 HTTPS,但客戶端使用了 HTTP。
解決方法
3.1 檢查客戶端請求
確??蛻舳耸褂谜_的協(xié)議(HTTP 或 HTTPS)和端口訪問服務(wù)器。
- 如果服務(wù)器配置了 HTTPS,客戶端應(yīng)使用
https://
協(xié)議。 - 如果服務(wù)器僅支持 HTTP,客戶端應(yīng)使用
http://
協(xié)議。
3.2 檢查服務(wù)器端口配置
確保服務(wù)器監(jiān)聽的端口與客戶端請求的端口一致。
- 如果服務(wù)器配置了 HTTPS,確??蛻舳嗽L問的是 HTTPS 端口(默認(rèn)
443
)。 - 如果服務(wù)器僅支持 HTTP,確??蛻舳嗽L問的是 HTTP 端口(默認(rèn)
8080
)。
3.3 檢查代理或負(fù)載均衡器配置
如果使用了代理或負(fù)載均衡器(如 Nginx、HAProxy),確保配置正確。
- 如果啟用了 HTTPS,確保代理或負(fù)載均衡器正確轉(zhuǎn)發(fā) HTTPS 請求。
4. 總結(jié)
在開發(fā)和部署 Spring Boot 應(yīng)用時,可能會遇到各種問題。通過檢查服務(wù)器配置、網(wǎng)絡(luò)連通性、跨域問題等,可以有效解決這些問題。本文總結(jié)了常見的錯誤及其解決方法,幫助你順利部署和運行 Spring Boot 應(yīng)用。
以上就是SpringBoot部署和前端連接問題解決的完整指南(net::ERR_CONNECTION_REFUSED)的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot部署和前端連接問題的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
SpringBoot3整合SpringDoc OpenAPI生成接口文檔的詳細(xì)過程
SpringDoc OpenAPI 是一個強(qiáng)大的工具,能夠幫助我們輕松生成 OpenAPI 3.0 規(guī)范的文檔,并提供交互式的 Swagger UI 界面,所以本文給大家介紹了SpringBoot3整合SpringDoc OpenAPI生成接口文檔的詳細(xì)過程,需要的朋友可以參考下2024-07-07Spring Boot 啟動加載數(shù)據(jù) CommandLineRunner的使用
本篇文章主要介紹了Spring Boot 啟動加載數(shù)據(jù) CommandLineRunner的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-04-04Spring?Security密碼解析器PasswordEncoder自定義登錄邏輯
這篇文章主要為大家介紹了Spring?Security密碼解析器PasswordEncoder自定義登錄邏輯示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08java Spring松耦合高效應(yīng)用簡單實例分析
在Java項目,龐大的對象依賴關(guān)系將一直緊密耦合引起對象難以管理或修改。在這種情況下,可以使用Spring框架作為一個核心模塊輕松高效地管理所有的對象依賴。本文章向大家介紹Spring松耦合的實例,需要的朋友可以參考一下。2016-12-12mybatis plus CU自動填充 和 軟刪除自動填充的實現(xiàn)方法
這篇文章主要介紹了mybatis plus CU自動填充 和 軟刪除自動填充的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-07-07