我部署了个rop应用,最近经常性报错,重启下就好了!!然后过断时间又出了异常

sa360430 2014-11-03
我这边用rop已经有小半年了,最近经常报这个异常,没查到具体原因!!!
@stamen 帮忙看看!!多谢

我这边所用的版本是rop-1.0.2-SNAPSHOT.jar


java.util.concurrent.ExecutionException: java.lang.NullPointerException
        at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:232)
        at java.util.concurrent.FutureTask.get(FutureTask.java:91)
        at com.rop.impl.AnnotationServletServiceRouter.service(AnnotationServletServiceRouter.java:131)
        at com.rop.RopServlet.service(RopServlet.java:50)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
        at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:313)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
        at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.NullPointerException
        at com.rop.impl.AnnotationServletServiceRouter.invokeBeforceResponseOfInterceptors(AnnotationServletServiceRouter.java:551)
        at com.rop.impl.AnnotationServletServiceRouter.access$8(AnnotationServletServiceRouter.java:550)
        at com.rop.impl.AnnotationServletServiceRouter$ServiceRunnable.run(AnnotationServletServiceRouter.java:432)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        ... 3 more



sa360430 2014-11-06
   木有人遇到过这情况么!!
stamen 2014-11-06
是不是压力负载大了 才有这个问题呢?
如果是的话,请将线程池的核心线程数加大,默认才10,生产环境下可以调整为400.

    <rop:annotation-driven
            core-pool-size="${rop.corePoolSize}" <== 这个数值调整为400!
            max-pool-size="${rop.maxPoolSize}"
            queue-capacity="${rop.queueCapacity}"
            keep-alive-seconds="${rop.keepAliveSeconds}"
            upload-file-max-size="${rop.uploadFileMaxSize}"
            upload-file-types="${rop.uploadFileTypes}"
            thread-ferry-class="${rop.threadFerryClass}"
            sign-enable="${rop.signEnable}"
            ext-error-base-names="${rop.customErrorBasenames}"
            service-timeout-seconds="${rop.serviceTimeoutSeconds}"

            session-manager="sessionManager"
            app-secret-manager="appSecretManager"
            formatting-conversion-service="conversionService"/>
sa360430 2014-11-06
stamen 写道
是不是压力负载大了 才有这个问题呢?
如果是的话,请将线程池的核心线程数加大,默认才10,生产环境下可以调整为400.

    <rop:annotation-driven
            core-pool-size="${rop.corePoolSize}" <== 这个数值调整为400!
            max-pool-size="${rop.maxPoolSize}"
            queue-capacity="${rop.queueCapacity}"
            keep-alive-seconds="${rop.keepAliveSeconds}"
            upload-file-max-size="${rop.uploadFileMaxSize}"
            upload-file-types="${rop.uploadFileTypes}"
            thread-ferry-class="${rop.threadFerryClass}"
            sign-enable="${rop.signEnable}"
            ext-error-base-names="${rop.customErrorBasenames}"
            service-timeout-seconds="${rop.serviceTimeoutSeconds}"

            session-manager="sessionManager"
            app-secret-manager="appSecretManager"
            formatting-conversion-service="conversionService"/>



core-pool-size 等几个参数也设置过好多情况,但是还是不行,我用apache-jmeter做了个压力测试,出错是有规律的,每提交一定次数请求大概6-7百次,然后请求就报错,连续6-7百次后,又能正常返回结果,然后反复这样!!
sa360430 2014-11-09
找到原因了,因为我的redis的异常引起的!!但是为啥没把原始错误抛出来啊??
Global site tag (gtag.js) - Google Analytics