java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot部署和前端连接问题

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

作者:码农阿豪@新空间代码工作室

在开发和部署 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 端口。

netstat -tuln | grep 8080
java -jar ShunFengServer-0.0.1-SNAPSHOT.jar

2.2 检查服务器地址

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

2.3 检查跨域问题

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

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 your-server-ip
telnet your-server-ip 8080

2.5 检查防火墙和安全组

确保服务器的防火墙或安全组允许 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)和端口访问服务器。

3.2 检查服务器端口配置

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

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

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

4. 总结

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

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

您可能感兴趣的文章:
阅读全文