我有一个 Spring webapp,它使用 HttpInvoker 连接到 Spring Boot 服务。我最近更新了服务项目以使用 Java 11,同时将其更新为 Spring Boot starter 2.1.3.RELEASE。服务项目提供了一个接口 jar,其中包含使用 HttpInvoker 时所需的所有请求和响应对象以及接口类。
我遇到了这个错误,但仅限于某些服务端点。我一直试图找出成功请求和失败请求之间的区别,但没有成功。
我试图解决问题的事情
谁能指出我正确的方向来解决这个问题......我现在真的在挠头
此错误的主要问题是服务接收来自 webapp 的请求,处理请求,然后响应。在远程回调的某个地方,我收到此错误,我的 web 应用程序响应异常,但在后台请求已成功完成。
以下是堆栈跟踪的一部分,我故意遗漏了一些,如果您需要更多信息,请告诉我。
java.io.StreamCorruptedException: Inconsistent vector internals
at java.base/java.util.Vector.readObject(Vector.java:1191) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at java.base/java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:1160) ~[na:na]
at java.base/java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2216) ~[na:na]
at java.base/java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:2087) ~[na:na]
at …Run Code Online (Sandbox Code Playgroud) 首先,请原谅我可能的无知,对我来说这是一个很新的事情,如果有什么我没有在这里提到,请告诉我,我会尽力给你所需要的信息......
所以我正在尝试使用maven在Eclipse中构建我的webapp,我有一个带有以下内容的测试套件
@RunWith(Suite.class)
@Suite.SuiteClasses({
// all my test classes
})
Run Code Online (Sandbox Code Playgroud)
这工作正常,当我通过右键单击运行测试并运行为Junit测试时,所有测试都通过.
当我运行这个Maven构建并且以包为目标时,一堆测试失败了???
我的maven surefire插件配置如下
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.16</version>
</dependency>
</dependencies>
<configuration>
<excludes>
<exclude>**/Test*.java</exclude>
</excludes>
<includes>
<include>**/DynamoUnitTestSuite.java</include>
</includes>
</configuration>
</plugin>
Run Code Online (Sandbox Code Playgroud)
这样它将排除运行集成测试并仅运行我的测试套件中的内容.
为什么我的测试在运行maven build时失败,但在运行测试套件时却没有?