gpt4 book ai didi

java - 浏览器上的 Spring Boot 空白页面响应

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:17:20 25 4
gpt4 key购买 nike

我有一个 Web 应用程序,使用 maven 和 spring boot 进行 war 部署。
虽然它在 windows 机器上正常工作(使用 netbeans 启动它),但当我在 linux 机器上运行它时,我从浏览器得到一个空白页面响应(不确定这是否相关)。启动时没有错误发生。

查了一会儿发现和spring boot的一些404错误响应有关。这发生在我尝试的任何路线上(有效或无效)

另一个线索是我试图将 404 错误重定向到 test.jsp,但浏览器中没有任何变化(我仍然得到这个空白页面)。通过 postman ,我得到了这个 .jsp 作为响应。

无论如何,因为路由是正确的,所以得到错误响应是不正常的。

这是我的pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=`"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">`
<modelVersion>4.0.0</modelVersion>


<groupId>org</groupId>
<artifactId>app</artifactId>
<version>1.0-RELEASE</version>
<packaging>war</packaging>

<name>webapp</name>
<description></description>


<properties>
<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>


<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.8.RELEASE</version>
</parent>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>

<!-- Provided
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.2</version>
</dependency>

</dependencies>


<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<!--<failOnMissingWebXml>true</failOnMissingWebXml>-->
<webResources>
<resource>
<directory>${basedir}/src/main/resources/lib</directory>
<targetPath>WEB-INF/lib</targetPath>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>

</project>

有什么想法吗?


编辑

我添加了一些可能有帮助的额外信息:

application.properties

中不包含 MVC 相关配置

Application.java(我没有使用@EnableWebMvc):

@SpringBootApplication
@EnableScheduling
public class Application extends SpringBootServletInitializer {

private static final Logger log = LoggerFactory.getLogger(Application.class);

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}

Web MVC 配置由以下人员完成:

@Configuration
public class MvcConfig extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver getPageViewResolver(){
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/pages/");
resolver.setSuffix(".jsp");
resolver.setViewClass(JstlView.class);
resolver.setOrder(1);
return resolver;
}
}

最佳答案

经过一些尝试,我得出结论:

  • mvn spring-boot:run
  • java -classpath "lib/*:classes/."org.app.Application
  • java -jar webapp-1.0.RELEASE.war

将应用程序作为普通应用程序启动,这会导致此问题。不管pom packing定义为jar还是war(如有不妥请指正)

Netbeans 正在将应用程序部署到外部 tomcat 服务器中。我终于尝试了经典的 war 部署方式,以使其发挥作用。

这个答案并没有解决原始问题,而是提供了一个解决方案,以防其他人遇到同样的问题。

关于java - 浏览器上的 Spring Boot 空白页面响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49212985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com