小编Ben*_*Ben的帖子

解决错误java.io.StreamCorruptedException: Inconsistent vector internals

我有一个 Spring webapp,它使用 HttpInvoker 连接到 Spring Boot 服务。我最近更新了服务项目以使用 Java 11,同时将其更新为 Spring Boot starter 2.1.3.RELEASE。服务项目提供了一个接口 jar,其中包含使用 HttpInvoker 时所需的所有请求和响应对象以及接口类。

我遇到了这个错误,但仅限于某些服务端点。我一直试图找出成功请求和失败请求之间的区别,但没有成功。

我试图解决问题的事情

  • 两个应用程序都运行相同版本的 Java 11
  • 更新了 Spring webapp 以使用 Spring 5.1.5.RELEASE,这与 spring boot starter 附带的版本相同。
    • 更新了两个应用程序以使用 spring-web 5.1.5.RELEASE。这是远程库的来源
    • 确保我在响应对象上扩展了 Serializable并更新了 serialVersionUID
    • 确认我在我的 webapp 中使用了正确版本的服务接口

谁能指出我正确的方向来解决这个问题......我现在真的在挠头

此错误的主要问题是服务接收来自 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)

java spring httpinvoker spring-boot spring-web

6
推荐指数
1
解决办法
1509
查看次数

Maven构建测试失败,但JUnit跑者测试传递?

首先,请原谅我可能的无知,对我来说这是一个很新的事情,如果有什么我没有在这里提到,请告诉我,我会尽力给你所需要的信息......

所以我正在尝试使用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时失败,但在运行测试套件时却没有?

java eclipse junit maven maven-surefire-plugin

4
推荐指数
1
解决办法
4977
查看次数