2017-01-31 5 views
0
Caused by: java.lang.NoClassDefFoundError: org/apache/tomcat/util/net/NioBlockingSelector$BlockPoller$2 
     at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.add(NioBlockingSelector.java:251) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.tomcat.util.net.NioBlockingSelector.write(NioBlockingSelector.java:112) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.tomcat.util.net.NioSelectorPool.write(NioSelectorPool.java:157) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.tomcat.util.net.NioEndpoint$NioSocketWrapper.doWrite(NioEndpoint.java:1221) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.tomcat.util.net.SocketWrapperBase.writeBlocking(SocketWrapperBase.java:378) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:347) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.coyote.http11.Http11OutputBuffer$SocketOutputBuffer.doWrite(Http11OutputBuffer.java:561) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.coyote.http11.filters.IdentityOutputFilter.doWrite(IdentityOutputFilter.java:77) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.coyote.http11.Http11OutputBuffer.doWrite(Http11OutputBuffer.java:206) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.coyote.Response.doWrite(Response.java:499) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:375) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:420) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:345) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:405) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:393) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:96) ~[tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at com.domain.DownloadController.load(DownloadController.java:97) ~[classes!/:0.0.1-SNAPSHOT] 
     at sun.reflect.GeneratedMethodAccessor29.invoke(Unknown Source) ~[na:na] 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_45] 
org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.NoClassDefFoundError: org/apache/tomcat/util/net/NioBlockingSelector$BlockPoller$2 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:978) ~[spring-webmvc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897) ~[spring-webmvc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970) [spring-webmvc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861) [spring-webmvc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:622) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846) [spring-webmvc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:729) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) [tomcat-embed-websocket-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99) [spring-web-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:89) [spring-web-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:77) [spring-web-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:197) [spring-web-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107) [spring-web-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:192) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:165) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:108) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:349) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:784) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:802) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1410) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_45] 
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_45] 
     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) [tomcat-embed-core-8.5.5.jar!/:8.5.5] 
     at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45] 


     at java.lang.reflect.Method.invoke(Method.java:497) ~[na:1.8.0_45] 
     at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221) ~[spring-web-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136) ~[spring-web-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114) ~[spring-webmvc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827) ~[spring-webmvc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738) ~[spring-webmvc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85) ~[spring-webmvc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963) ~[spring-webmvc-4.3.3.RELEASE.jar!/:4.3.3.RELEASE] 
     ... 43 common frames omitted 

私はmvnパッケージを使用してスプリングブートアプリケーションを構築しました。アプリケーション全体が正常に動作しますが、大きなファイルをダウンロードしようとしているときに、ときどきNoClassDefFoudでこの偽りの腹を立てます。アプリケーションの残りの部分は正常に動作し、小さなファイルのダウンロードもうまくいきます。大容量のファイルをダウンロードし、なぜこれ推移Tomcatの依存関係は、ばねブートスターターを経由して含まれていないときに私はこの例外を取得するのはなぜ

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.1.RELEASE</version> 
</parent> 
<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-web</artifactId> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-test</artifactId> 
     <scope>test</scope> 
    </dependency> 
</dependencies> 

File file = rootLocation.resolve(fileName).toFile(); 
resp.setContentLength((int) file.length()); 
resp.setHeader("Content-Disposition", String.format("attachment; filename=\"%s\"", fileName)); 

OutputStream out = null; 
try { 
    out = resp.getOutputStream(); 
    try (FileInputStream in = new FileInputStream(file)) { 
     byte[] buffer = new byte[4096]; 
     int length; 
     while ((length = in.read(buffer)) != -1) { 
      out.write(buffer, 0, length); 
      try { 
       Thread.sleep(uploadDelay); 
      } catch (InterruptedException e) {} 
     } 
    } 
    out.flush(); 
    out.close(); 
} catch (IOException e) { 
    if (out != null) { 
     try { 
      out.close(); 
     } catch (IOException e1) {} 
    } 
} 

を更新しました時々私が持っているように、別のスプリアスexcpetion - すべてこの問題がホットリスタートに関連する NoClassFefFoundError: org/apache/tomcat/util/exceptionutils Lookeのliks。一度私は彼らが行ったアプリを再起動

+0

クラスパスに 'tomcat-util'がありますか? – Arpit

+0

このクラスは、依存関係spring-boot-starter-webとして含まれているtomcat-embed-core-8.5.5.jarの一部です – user12384512

答えて

0

あなたのクラスパスにtomcat-utilの複数のバージョンがあるようだ。

あなたがこれをデバッグすることができます

Mavenのコマンド:

mvn dependency:tree 
mvn help:effective-pom 
0

私はあなたが戦争を作成し、にあなたのpom.xmlのエントリを変更し、外部tomcat.Tryにそれを展開していると信じて:

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
    <exclusions> 
     <exclusion> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 

これは、jarに埋め込みのtomcatを使用しないので、このトリックを行う必要があります