java.io.StreamCorruptedException : 유효하지 않은 스트림 헤더 : EFBFBDEF

스키조 :

프로젝트 관리 도구와 같은 maven을 사용하는 Java 웹 응용 프로그램을 개발 중이며 이제이 문제에 열중하고 있습니다. 내 응용 프로그램에서 재스퍼 보고서를 작성하려고 하는데이 보고서는 src / main / resources에있는 많은 하위 보고서로 구성됩니다. 이러한 하위 보고서를 다음과 같은 방식으로로드하려고합니다.

//Sub Report 1 
InputStream fileSubRep1=(BufferedInputStream) getClass().getResourceAsStream("/fileSubReport1.jasper");
map.put("fileSubRep1",(JasperReport) JRLoader.loadObject(fileSubRep1));

//Sub Report 2 
InputStream fileSubRep2=(BufferedInputStream) getClass().getResourceAsStream("/fileSubReport2.jasper");
map.put("fileSubRep1",(JasperReport) JRLoader.loadObject(fileSubRep2));

문제는이 메소드 JRLoader.loadObject (fileSubRep1) 에서의 호출이 다음 예외를 생성한다는 것입니다.

        net.sf.jasperreports.engine.JRException: Error loading object from InputStream
    at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:248)
    at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:228)
    at it.aiemonline.report.jasper.GeneraFattureServiceImpl.createMapFileJasper(GeneraFattureServiceImpl.java:292)
    at it.aiemonline.report.jasper.GeneraFattureServiceImpl.executeStreamByteFatturaPdf(GeneraFattureServiceImpl.java:890)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:319)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
    at it.aiemonline.utility.logger.SystemLogger.aroundExecuteLog(SystemLogger.java:187)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
    at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
    at com.sun.proxy.$Proxy78.executeStreamByteFatturaPdf(Unknown Source)
    at it.aiemonline.vaadin.application.gui.fatturazione.visualizza.VisualizzaFatturaPanel.visualizzaPdf(VisualizzaFatturaPanel.java:236)
    at it.aiemonline.vaadin.application.gui.fatturazione.visualizza.VisualizzaFatturaPanel$1.itemClick(VisualizzaFatturaPanel.java:109)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:508)
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:198)
    at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:161)
    at com.vaadin.server.AbstractClientConnector.fireEvent(AbstractClientConnector.java:969)
    at com.vaadin.ui.Table.handleClickEvent(Table.java:3057)
    at com.vaadin.ui.Table.changeVariables(Table.java:2853)
    at com.vaadin.server.communication.ServerRpcHandler.changeVariables(ServerRpcHandler.java:396)
    at com.vaadin.server.communication.ServerRpcHandler.handleBurst(ServerRpcHandler.java:221)
    at com.vaadin.server.communication.ServerRpcHandler.handleRpc(ServerRpcHandler.java:111)
    at com.vaadin.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:91)
    at com.vaadin.server.SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:37)
    at com.vaadin.server.VaadinService.handleRequest(VaadinService.java:1382)
    at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:238)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:538)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:478)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:119)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:517)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:225)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:937)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:406)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:183)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:871)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:117)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:247)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:149)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:110)
    at org.eclipse.jetty.server.Server.handle(Server.java:346)
    at org.eclipse.jetty.server.HttpConnection.handleRequest(HttpConnection.java:589)
    at org.eclipse.jetty.server.HttpConnection$RequestHandler.content(HttpConnection.java:1065)
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:823)
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:220)
    at org.eclipse.jetty.server.HttpConnection.handle(HttpConnection.java:411)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:535)
    at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:40)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:529)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
    at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
    at java.io.ObjectInputStream.<init>(Unknown Source)
    at net.sf.jasperreports.engine.util.ContextClassLoaderObjectInputStream.<init>(ContextClassLoaderObjectInputStream.java:58)
    at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:243)
    ... 69 more

내가 뭘 잘못하고 있니? 어떻게 고칠 수 있습니까?

스키조 :

마침내 두통 3 일 후에 나는 문제를 해결했다. 나는 프로젝트 관리 도구와 같은 maven을 사용하고 있으며이 구조로 모듈 형 프로젝트를 진행하고 있습니다.

|-- parent
   |-- model
    --pom.xml
   |-- services
    --pom.xml
   |-- web-app
    --pom.xml

문제는 입력 스트림과 같이로드하려고하는 파일이 서비스 모듈의 src / main / resources에 있지만 웹 응용 프로그램의 pom.xml에서 리소스 필터링을 활성화한다는 것입니다. 웹 응용 프로그램 모듈은 서비스의 필터링은 서비스 모듈에서 확장되었습니다.

maven 웹 사이트 필터링 의 필터링 섹션에서 다음을 발견했습니다.

경고 : 이미지와 같은 이진 컨텐츠로 파일을 필터링하지 마십시오! 결과적으로 출력이 손상 될 수 있습니다. 텍스트 파일과 이진 파일을 모두 리소스로 사용하는 경우 두 개의 상호 배타적 인 리소스 세트를 선언해야합니다. 첫 번째 자원 세트는 필터링 할 파일을 정의하고 다른 자원 세트는 아래 그림과 같이 변경되지 않은 복사 할 파일을 정의합니다.

그런 다음 웹 응용 프로그램 모듈에서 다음 코드를 제거하면 모든 것이 작동합니다.

<resources>
     <resource>
         <directory>src/main/resources</directory>
         <filtering>true</filtering>
    </resource>
</resources>

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

java.io.StreamCorruptedException : 유효하지 않은 스트림 헤더 : 54657374

java.io.StreamCorruptedException : 유효하지 않은 스트림 헤더 : 7371007E

Serialization : java.io.StreamCorruptedException : 유효하지 않은 스트림 헤더 : 0AACED00

java.io.StreamCorruptedException : 유효하지 않은 유형 코드 : 04

java.io.IOException : 유효하지 않은 헤더 필드는 무엇입니까?

SCS 앱에서 수신된 개체 페이로드를 테스트하는 방법(java.io.StreamCorruptedException: 잘못된 스트림 헤더: 역직렬화 중 7B0D0A20)

개인 키 파일로 복호화 : 유효하지 않은 스트림 헤더

StreamCorruptedException : 잘못된 스트림 헤더 : 7B227061

java.io.IOException : 유효하지 않은 헤더 서명; 0x6D78204C4D54483C 읽기, 0xE11AB1A1E011CFD0 예상

ProtocolException : 유효하지 않은 헤더 : : on HTTPRequest

java.io.StreamCorruptedException : invalid type code : AC를받지 않고 ObjectInputStream에 추가하는 방법

Java의 CipherInputStream에 래핑하는 동안 ObjectInputStream의 java.io.StreamCorruptedException

잘못된 스트림 헤더 : 바이트 문자열에서 개체를 변환 할 때 EFBFBDEF

원인 : java.io.IOException : HTTP / 1.1 헤더 파서가 바이트를 수신하지 않았습니다.

Spring-유효하지 않은 인수 값 : java.io.NotSerializableException

웹 오디오 스트림에서 유효하지 않은 (또는 독점적 인?) MP3 프레임 헤더를 인식하고 건너 뜁니다.

java.io.StreamCorruptedException: invalid internal transport message format

때 java.io.IOException : 유효하지 않은 상수 유형 : 19 (5)에서

java.io.EOFException : 아파치 POI를 사용하여 ZLIB 입력 스트림의 예기치 않은 종료

Gzip JSON 응답 압축 해제: StreamCorruptedException: 잘못된 스트림 헤더: 7B227061

SonarQube-HAProxy HTTPs 유효하지 않은 헤더

bcrypt 및 Docker bcrypt_lib.node : 유효하지 않은 ELF 헤더

IBM MobileFirst Platform의 유효하지 않은 쿠키 헤더

matplotlib : ValueError : 유효하지 않은 PNG 헤더

C 소켓 유효하지 않은 범위 헤더

Django Rest Framework PyJWT 토큰 유효하지 않은 헤더 패딩

Windows에서 tfjs-node-gpu 유효하지 않은 ELF 헤더

스레드 "main"의 예외 java.lang.IllegalArgumentException : java.io.IOException 유효하지 않은 DER : 길이 필드가 너무 큼 (186)

Java 유효하지 않은 이스케이프 시퀀스

TOP 리스트

뜨겁다태그

보관