Springboot在Linux運行時,偶爾會出現莫名例外(每次的地方還不一致),以下為某次例外
java.lang.IllegalStateException: java.io.EOFException
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:324)
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:300)
at org.springframework.boot.loader.jar.JarFileEntries.doGetEntry(JarFileEntries.java:288)
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:243)
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:203)
at org.springframework.boot.loader.jar.JarFile.getEntry(JarFile.java:225)
at org.springframework.boot.loader.LaunchedURLClassLoader.lambda$definePackage$0(LaunchedURLClassLoader.java:137)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.boot.loader.LaunchedURLClassLoader.definePackage(LaunchedURLClassLoader.java:129)
at org.springframework.boot.loader.LaunchedURLClassLoader.definePackageIfNecessary(LaunchedURLClassLoader.java:111)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:81)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.wuji.erp_api.service.Impl.OrderChServiceImpl.getOrderChDeatail(OrderChServiceImpl.java:1244)
at com.wuji.erp_api.service.Impl.OrderChServiceImpl$$FastClassBySpringCGLIB$$8c27fcc3.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)
at com.wuji.erp_api.service.Impl.OrderChServiceImpl$$EnhancerBySpringCGLIB$$82924bdd.getOrderChDeatail(<generated>)
at com.wuji.erp_api.service.Impl.OrderChServiceImpl$$FastClassBySpringCGLIB$$8c27fcc3.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:685)
at com.wuji.erp_api.service.Impl.OrderChServiceImpl$$EnhancerBySpringCGLIB$$76a4ae5d.getOrderChDeatail(<generated>)
at com.wuji.erp_api.controller.OrderListController.getOrderChDeatail(OrderListController.java:685)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:888)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:61)
at org.apache.shiro.web.servlet.AdviceFilter.executeChain(AdviceFilter.java:108)
at org.apache.shiro.web.servlet.AdviceFilter.doFilterInternal(AdviceFilter.java:137)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.apache.shiro.web.servlet.ProxiedFilterChain.doFilter(ProxiedFilterChain.java:66)
at org.apache.shiro.web.servlet.AbstractShiroFilter.executeChain(AbstractShiroFilter.java:449)
at org.apache.shiro.web.servlet.AbstractShiroFilter$1.call(AbstractShiroFilter.java:365)
at org.apache.shiro.subject.support.SubjectCallable.doCall(SubjectCallable.java:90)
at org.apache.shiro.subject.support.SubjectCallable.call(SubjectCallable.java:83)
at org.apache.shiro.subject.support.DelegatingSubject.execute(DelegatingSubject.java:387)
at org.apache.shiro.web.servlet.AbstractShiroFilter.doFilterInternal(AbstractShiroFilter.java:362)
at org.apache.shiro.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:125)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:526)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:367)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1591)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.EOFException
at org.springframework.boot.loader.data.RandomAccessDataFile.read(RandomAccessDataFile.java:99)
at org.springframework.boot.loader.jar.CentralDirectoryFileHeader.load(CentralDirectoryFileHeader.java:78)
at org.springframework.boot.loader.jar.CentralDirectoryFileHeader.fromRandomAccessData(CentralDirectoryFileHeader.java:175)
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:314)
... 85 more
或者有
java.lang.NullPointerException
at org.springframework.boot.loader.jar.JarEntry.<init>(JarEntry.java:48)
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:316)
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:300)
at org.springframework.boot.loader.jar.JarFileEntries.doGetEntry(JarFileEntries.java:288)
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:243)
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:203)
at org.springframework.boot.loader.jar.JarFile.getEntry(JarFile.java:225)
at org.springframework.boot.loader.LaunchedURLClassLoader.lambda$definePackage$0(LaunchedURLClassLoader.java:137)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.boot.loader.LaunchedURLClassLoader.definePackage(LaunchedURLClassLoader.java:129)
at org.springframework.boot.loader.LaunchedURLClassLoader.definePackageIfNecessary(LaunchedURLClassLoader.java:111)
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:81)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.wuji.erp_api.service.Impl.InvoiceServiceImpl.getPurchaseContract(InvoiceServiceImpl.java:2278)
at com.wuji.erp_api.service.Impl.InvoiceServiceImpl$$FastClassBySpringCGLIB$$d568c1a9.invoke(<generated>)
目前尚不確定是否是生成Jar包時出現了問題
uj5u.com熱心網友回復:
從錯誤提示來看,jar檔案有問題java.lang.IllegalStateException: java.io.EOFException
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:324)
這是想取得下一個Entry的時候,發生檔案結束錯誤了
java.lang.NullPointerException
at org.springframework.boot.loader.jar.JarEntry.<init>(JarEntry.java:48)
at org.springframework.boot.loader.jar.JarFileEntries.getEntry(JarFileEntries.java:316)
這里是報空指標錯誤,估計是getEntry回傳了null物件
你可以自己寫個測驗程式,看看你的jar是否有問題
try{
JarFile jf = new JarFile("your_jar_file");
for (Enumeration<JarEntry> e = jf.entries(); e.hasMoreElements();) {
JarEntry je = (JarEntry) e.nextElement();
System.out.println(je.getName());
}
} catch (Throwable e) {
e.printStackTrace();
}uj5u.com熱心網友回復:
謝謝啦,現在還沒找到確信的問題在哪,但是你的意見我會參考一下
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/113227.html
標籤:Java EE
