我尝试将项目从 JDK8 升级到 JDK11,整个业务逻辑部分运行良好,但是当 Maven 到达测试类时,所有这些都失败并出现完全相同的异常\n例如
\n\n initializationError(com.foo.bar.etc.utils.TimeUtilsTest) Time elapsed: 0 sec <<< ERROR!\njava.lang.NoSuchMethodError: 'void org.springframework.util.Assert.state(boolean, java.util.function.Supplier)'\n at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.ensureSpringRulesAreNotPresent(SpringJUnit4ClassRunner.java:120)\n at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.<init>(SpringJUnit4ClassRunner.java:141)\n at org.springframework.test.context.junit4.SpringRunner.<init>(SpringRunner.java:49)\n at jdk.internal.reflect.GeneratedConstructorAccessor6.newInstance(Unknown Source)\n at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\n at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)\n at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)\n at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)\n at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)\n at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)\n at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)\n at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)\n at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)\n at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)\n at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)\n at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)\n at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)\n at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)\n at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)\nRun Code Online (Sandbox Code Playgroud)\n\n一旦一切完成,它只是用列表总结所有测试类
\n\nTests in error:\n BaseSpringTest.initializationError \xc2\xbb NoSuchMethod 'void org.springframework.ut...\n EmailAttachmentDaoImplTest.initializationError \xc2\xbb NoSuchMethod 'void org.spring...\n EmailEventDaoImplTest.initializationError \xc2\xbb NoSuchMethod 'void org.springframe...\n EmailMappingDaoImplTest.initializationError \xc2\xbb NoSuchMethod …Run Code Online (Sandbox Code Playgroud) 当使用我的 Eclipse 的 Tomcat9 服务器(v9.0.62)时,我的“应用程序”运行正常。然而,一旦部署到我的生产服务器上(v9.0.43),就会返回 404。Tomcat 没有记录任何堆栈跟踪。
两台服务器都使用 OpenJDK17 作为 JDK。使用 Spring < 6 版本时不会出现此问题。
Eclipse 控制台输出:
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个简单的 Spring MVC 来查看 main-menu.jsp 但我遇到了问题,而且我不知道如何修复它。我正在使用 Intellij 并通过 Maven 创建项目。
这是我的项目结构
src
- main
- java
- com.example.mvc
- HomeController.java
-resources
- webapp
- WEB-INF
- view
- main-menu.jsp
- applicationContext.xml
- web.xml
Run Code Online (Sandbox Code Playgroud)
我的 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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<packaging>war</packaging>
<name>Demo</name>
<properties>
<maven.compiler.source>18</maven.compiler.source>
<maven.compiler.target>18</maven.compiler.target>
</properties>
<groupId>org.example</groupId>
<artifactId>Demo</artifactId>
<version>1.0-SNAPSHOT</version>
<build>
<plugins>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>maven-jetty-plugin</artifactId>
<version>6.1.7</version>
<configuration>
<connectors>
<connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
<port>8888</port>
<maxIdleTime>30000</maxIdleTime>
</connector>
</connectors>
<webAppSourceDirectory>${project.build.directory}/${pom.artifactId}-${pom.version}</webAppSourceDirectory>
<contextPath>/</contextPath>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.3.20</version>
</dependency> …Run Code Online (Sandbox Code Playgroud)