SpringBoot部署和前端连接问题解决的完整指南(net::ERR_CONNECTION_REFUSED)

 更新时间:2025年01月20日 08:40:36   作者:码农阿豪@新空间代码工作室  
在开发和部署 Spring Boot 应用时,可能会遇到各种问题,例如 JAR 文件无法运行、前端无法连接后端服务等,本文将详细总结这些问题的解决方法,帮助你顺利部署和运行 Spring Boot 应用,需要的朋友可以参考下

1. JAR 文件无法运行:no main manifest attribute

问题描述

在运行 Spring Boot 生成的 JAR 文件时,可能会遇到以下错误:

no main manifest attribute, in ShunFengServer-0.0.1-SNAPSHOT.jar

问题原因

这个错误表示 JAR 文件中缺少 Main-Class 属性,导致 Java 无法找到程序的入口点(即 main 方法)。

解决方法

1.1 检查 pom.xml 配置

确保在 pom.xml 中正确配置了 spring-boot-maven-plugin,以便生成可执行的 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

确保输出中包含类似以下内容:

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. 前端无法连接后端服务:net::ERR_CONNECTION_REFUSED

问题描述

在浏览器中访问前端页面时,可能会遇到以下错误:

Failed to load resource: net::ERR_CONNECTION_REFUSED

问题原因

这个错误表示浏览器无法连接到指定的服务器地址(127.0.0.1:8080)。可能的原因包括服务器未启动、网络问题、跨域问题等。

解决方法

2.1 检查服务器是否启动

确保 Spring Boot 应用已经成功启动,并且正在监听 8080 端口。

  • 在服务器上运行以下命令,检查是否有进程正在监听 8080 端口:

netstat -tuln | grep 8080
  • 如果输出为空,说明服务器未启动或未监听 8080 端口。

  • 启动 Spring Boot 应用:

java -jar ShunFengServer-0.0.1-SNAPSHOT.jar

2.2 检查服务器地址

确保浏览器访问的地址正确。

  • 如果 Spring Boot 应用运行在本地,确保浏览器访问的是 http://127.0.0.1:8080 或 http://localhost:8080
  • 如果 Spring Boot 应用运行在远程服务器上,确保浏览器访问的是服务器的公网 IP 或域名,例如 http://your-server-ip:8080

2.3 检查跨域问题

如果前端页面和后端服务运行在不同的域名或端口上,可能会触发浏览器的跨域限制。

  • 在后端服务中启用跨域支持。可以在 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); // 预检请求缓存时间
    }
}

2.4 检查网络连通性

确保客户端和服务器之间的网络连接正常。

  • 在客户端机器上,使用 ping 命令测试服务器的连通性:
ping your-server-ip
  • 使用 telnet 命令测试端口是否开放:
telnet your-server-ip 8080
  • 如果连接失败,说明网络或防火墙配置有问题。

2.5 检查防火墙和安全组

确保服务器的防火墙或安全组允许 8080 端口的访问。

  • 如果使用云服务器(如阿里云、腾讯云),检查安全组规则,确保 8080 端口对外开放。

3. HTTPS 和 HTTP 混用问题

问题描述

在部署 Spring Boot 应用时,可能会遇到以下错误:

java.lang.IllegalArgumentException: Invalid character found in method name [0x160x030x010x060xe00x010x000x060xdc0x030x030x110x060xb40x870xd80x060x93a0x0f0x9e0x8d0xaa0xb6^c0xe00x910xe70xed0x160xf20x0ce0x8dY0x82oRm0x0b0xb1' ]. HTTP method names must be tokens

问题原因

这个错误通常是由于客户端尝试通过 HTTP 协议访问 HTTPS 端口,或者服务器配置了 HTTPS,但客户端使用了 HTTP。

解决方法

3.1 检查客户端请求

确保客户端使用正确的协议(HTTP 或 HTTPS)和端口访问服务器。

  • 如果服务器配置了 HTTPS,客户端应使用 https:// 协议。
  • 如果服务器仅支持 HTTP,客户端应使用 http:// 协议。

3.2 检查服务器端口配置

确保服务器监听的端口与客户端请求的端口一致。

  • 如果服务器配置了 HTTPS,确保客户端访问的是 HTTPS 端口(默认 443)。
  • 如果服务器仅支持 HTTP,确保客户端访问的是 HTTP 端口(默认 8080)。

3.3 检查代理或负载均衡器配置

如果使用了代理或负载均衡器(如 Nginx、HAProxy),确保配置正确。

  • 如果启用了 HTTPS,确保代理或负载均衡器正确转发 HTTPS 请求。

4. 总结

在开发和部署 Spring Boot 应用时,可能会遇到各种问题。通过检查服务器配置、网络连通性、跨域问题等,可以有效解决这些问题。本文总结了常见的错误及其解决方法,帮助你顺利部署和运行 Spring Boot 应用。

以上就是SpringBoot部署和前端连接问题解决的完整指南(net::ERR_CONNECTION_REFUSED)的详细内容,更多关于SpringBoot部署和前端连接问题的资料请关注脚本之家其它相关文章!

相关文章

  • 浅谈java中OO的概念和设计原则(必看)

    浅谈java中OO的概念和设计原则(必看)

    下面小编就为大家带来一篇浅谈java中OO的概念和设计原则(必看)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • SpringBoot3整合SpringDoc OpenAPI生成接口文档的详细过程

    SpringBoot3整合SpringDoc OpenAPI生成接口文档的详细过程

    SpringDoc OpenAPI 是一个强大的工具,能够帮助我们轻松生成 OpenAPI 3.0 规范的文档,并提供交互式的 Swagger UI 界面,所以本文给大家介绍了SpringBoot3整合SpringDoc OpenAPI生成接口文档的详细过程,需要的朋友可以参考下
    2024-07-07
  • 浅谈springboot自动配置原理

    浅谈springboot自动配置原理

    这篇文章主要介绍了浅谈springboot自动配置原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • 教你用Java在个人电脑上实现微信扫码支付

    教你用Java在个人电脑上实现微信扫码支付

    今天给大家带来的是Java实战的相关知识,文章围绕着Java在个人电脑上实现微信扫码支付展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Spring Boot 启动加载数据 CommandLineRunner的使用

    Spring Boot 启动加载数据 CommandLineRunner的使用

    本篇文章主要介绍了Spring Boot 启动加载数据 CommandLineRunner的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • Java使用Poi导出Excel表格方法实例

    Java使用Poi导出Excel表格方法实例

    这篇文章主要给大家介绍了关于Java使用Poi导出Excel表格的相关资料,Java POI是一个用于操作Microsoft Office格式的Java API库,可以使用它来导出Excel文件,需要的朋友可以参考下
    2023-10-10
  • Spring Security密码解析器PasswordEncoder自定义登录逻辑

    Spring Security密码解析器PasswordEncoder自定义登录逻辑

    这篇文章主要为大家介绍了Spring Security密码解析器PasswordEncoder自定义登录逻辑示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • java Spring松耦合高效应用简单实例分析

    java Spring松耦合高效应用简单实例分析

    在Java项目,庞大的对象依赖关系将一直紧密耦合引起对象难以管理或修改。在这种情况下,可以使用Spring框架作为一个核心模块轻松高效地管理所有的对象依赖。本文章向大家介绍Spring松耦合的实例,需要的朋友可以参考一下。
    2016-12-12
  • mybatis plus CU自动填充 和 软删除自动填充的实现方法

    mybatis plus CU自动填充 和 软删除自动填充的实现方法

    这篇文章主要介绍了mybatis plus CU自动填充 和 软删除自动填充的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-07-07
  • Java中CountDownLatch用法解析

    Java中CountDownLatch用法解析

    这篇文章主要为大家详细介绍了Java中CountDownLatch用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01

最新评论