首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >仅在Spring应用程序中使用StreamCorruptedException

仅在Spring应用程序中使用StreamCorruptedException
EN

Stack Overflow用户
提问于 2022-10-30 10:27:03
回答 1查看 27关注 0票数 0

在Spring应用程序(2.3.3)上,我依赖于我的公司开发的一个模块。从服务中,我从这个依赖项调用一个方法,它需要一个从资源(src/main/resources/META-INF/spring-main-cfg.xml),加载的文件,所以我已经将这个文件复制并粘贴到Spring应用程序资源中。

下面是在该依赖项中执行的代码:

代码语言:javascript
复制
InputStream in = RSAEncrypter.class.getClassLoader().getResourceAsStream(keyFileName);
// StreamCorruptedException here
ObjectInputStream oin = new ObjectInputStream(new BufferedInputStream(in));

堆叠:

java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:936) java.io.StreamCorruptedException:无效的流头: EFBFBDEF at

~na:1.8.0_281 at java.io.ObjectInputStream.(ObjectInputStream.java:394) ~na:1.8.0_281

问题是,我创建了一个新的虚拟Maven项目,只有这个依赖项和一个main来执行该代码,而且它可以工作。

我不明白为什么我会在Spring应用程序中执行这个异常。我有相同的Java版本,文件读取是一样的。

有什么想法吗?

EN

Stack Overflow用户

回答已采纳

发布于 2022-10-30 20:29:00

我终于找到了这个问题,因为我有一个全局文件,这就是它自己的文件:

代码语言:javascript
复制
<resources>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
  </resource>
</resources>

这方面的专家医生说:

警告:不要过滤像图像这样的二进制内容的文件!这很可能导致输出错误。

https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html

所以我刚为我的文件添加了一个例外:

代码语言:javascript
复制
<resources>
  <!-- Only properties files have to be filtered.
       META-INF/spring-main-cfg.xml must not be or StreamCorruptedException occure by reading it -->
  <resource>
    <directory>src/main/resources</directory>
    <filtering>false</filtering>
  </resource>
  <resource>
    <directory>src/main/resources</directory>
    <filtering>true</filtering>
    <includes>
      <include>**/*.properties</include>
    </includes>
  </resource>
</resources>
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74252280

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档