【发布时间】:2016-11-25 02:50:20
【问题描述】:
我有一个使用 Mule EE 3.8.0 的 mule 应用程序,它的 http 侦听器配置了工作线程配置文件以限制请求流量
示例如下
<http:listener-config name="HTTP_Listener_Configuration"
host="0.0.0.0" port="8081" doc:name="HTTP Listener Configuration">
<http:worker-threading-profile maxThreadsActive="10"
threadWaitTimeout="15000" poolExhaustedAction="WAIT"/>
</http:listener-config>
此应用运行良好,但日志中的错误数量越来越多,如下所示:
错误 2016-11-24 17:02:00,813 [[mule-api-v1].http.listener(2) SelectorRunner] org.glassfish.grizzly.nio.SelectorRunner: doSelect 异常 java.lang.NoClassDefFoundError:无法初始化类 org.glassfish.grizzly.localization.LogMessages 在 org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:90) ~[grizzly-core-2.3.28.jar:2.3.28] 在 org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526) ~[grizzly-core-2.3.28.jar:2.3.28] 在 org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) ~[grizzly-core-2.3.28.jar:2.3.28] 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.run0(ExecutorPerServerAddressIOStrategy.java:102) ~[mule-module-http-3.8.0.jar:3.8.0] 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.executeIoEvent(ExecutorPerServerAddressIOStrategy.java:75) ~[mule-module-http-3.8.0.jar:3.8.0] 在 org.glassfish.grizzly.strategies.AbstractIOStrategy.executeIoEvent(AbstractIOStrategy.java:89) ~[grizzly-core-2.3.28.jar:2.3.28] 在 org.glassfish.grizzly.nio.SelectorRunner.iterateKeyEvents(SelectorRunner.java:415) ~[grizzly-core-2.3.28.jar:2.3.28] 在 org.glassfish.grizzly.nio.SelectorRunner.iterateKeys(SelectorRunner.java:384) ~[grizzly-core-2.3.28.jar:2.3.28] 在 org.glassfish.grizzly.nio.SelectorRunner.doSelect(SelectorRunner.java:348) ~[grizzly-core-2.3.28.jar:2.3.28] 在 org.glassfish.grizzly.nio.SelectorRunner.run(SelectorRunner.java:279) ~[grizzly-core-2.3.28.jar:2.3.28] 在 org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:593) ~[grizzly-core-2.3.28.jar:2.3.28] 在 org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:573) ~[grizzly-core-2.3.28.jar:2.3.28] 在 java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]
线程“[mule--api-v1].HTTP_Listener_Configuration.worker.01”中的异常 java.lang.NoClassDefFoundError: 无法初始化类 org.glassfish.grizzly.localization.LogMessages 在 org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:90) 在 org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526) 在 org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.run0(ExecutorPerServerAddressIOStrategy.java:102) 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.access$100(ExecutorPerServerAddressIOStrategy.java:30) 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy$WorkerThreadRunnable.run(ExecutorPerServerAddressIOStrategy.java:125) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)
线程“[mule-api-v1].HTTP_Listener_Configuration.worker.02”中的异常 java.lang.NoClassDefFoundError:无法初始化类 org.glassfish.grizzly.localization.LogMessages 在 org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:90) 在 org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526) 在 org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.run0(ExecutorPerServerAddressIOStrategy.java:102) 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.access$100(ExecutorPerServerAddressIOStrategy.java:30) 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy$WorkerThreadRunnable.run(ExecutorPerServerAddressIOStrategy.java:125) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)
线程“[mule-api-v1].HTTP_Listener_Configuration.worker.03”中的异常 java.lang.NoClassDefFoundError:无法初始化类 org.glassfish.grizzly.localization.LogMessages 在 org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:90) 在 org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:526) 在 org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.run0(ExecutorPerServerAddressIOStrategy.java:102) 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.access$100(ExecutorPerServerAddressIOStrategy.java:30) 在 org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy$WorkerThreadRunnable.run(ExecutorPerServerAddressIOStrategy.java:125) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 在 java.lang.Thread.run(Thread.java:745)
....等等等等....
如上面的堆栈跟踪所示,线程名称中的数字(例如 HTTP_Listener_Configuration.worker.03)随着此侦听器收到的每个请求而增加。
如果我删除了 work-threading-profile 块,这个问题就消失了,但它对我们来说是必须的,所以如果你能指出我的解决方法,请帮助任何人。
【问题讨论】:
标签: mule