Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java WebappClassLoader间歇性地需要12秒来加载本地JAR文件_Java_Windows_Tomcat_Classloader - Fatal编程技术网

Java WebappClassLoader间歇性地需要12秒来加载本地JAR文件

Java WebappClassLoader间歇性地需要12秒来加载本地JAR文件,java,windows,tomcat,classloader,Java,Windows,Tomcat,Classloader,我有一个无法在开发或测试环境中复制的生产问题。而且,由于Tomcat正在生产中,如果没有大量的繁文缛节,我无法停止/启动它 在使用AudioSystem类的执行线程中,我观察到大约12秒(500毫秒)的延迟。这些延迟是间歇性的,彼此之间的时间间隔不超过几分钟。其他线程并行进行,不会出现问题。随着负载的增加,延迟似乎变得不那么频繁 通过使用JConsole线程选项卡,我能够在延迟发生时收集堆栈跟踪。e、 g Name: http-8081-Processor27 State: RUNNABLE T

我有一个无法在开发或测试环境中复制的生产问题。而且,由于Tomcat正在生产中,如果没有大量的繁文缛节,我无法停止/启动它

在使用AudioSystem类的执行线程中,我观察到大约12秒(500毫秒)的延迟。这些延迟是间歇性的,彼此之间的时间间隔不超过几分钟。其他线程并行进行,不会出现问题。随着负载的增加,延迟似乎变得不那么频繁

通过使用JConsole线程选项卡,我能够在延迟发生时收集堆栈跟踪。e、 g

Name: http-8081-Processor27
State: RUNNABLE
Total blocked: 134,991  Total waited: 23,132

Stack trace: 
java.util.zip.ZipFile.open(Native Method)
java.util.zip.ZipFile.<init>(Unknown Source)
java.util.jar.JarFile.<init>(Unknown Source)
java.util.jar.JarFile.<init>(Unknown Source)
org.apache.catalina.loader.WebappClassLoader.openJARs(WebappClassLoader.java:1789)
org.apache.catalina.loader.WebappClassLoader.findResources(WebappClassLoader.java:1019)
java.lang.ClassLoader.getResources(Unknown Source)
sun.misc.Service$LazyIterator.hasNext(Unknown Source)
com.sun.media.sound.JSSecurityManager$7.run(Unknown Source)
java.security.AccessController.doPrivileged(Native Method)
com.sun.media.sound.JSSecurityManager.getProviders(Unknown Source)
com.sun.media.sound.JDK13Services.getProviders(Unknown Source)
javax.sound.sampled.AudioSystem.getProviders(Unknown Source)
javax.sound.sampled.AudioSystem.getAudioFileReaders(Unknown Source)
javax.sound.sampled.AudioSystem.getAudioInputStream(Unknown Source)
服务器的代理服务器配置错误。这可以可靠地在获取网页时产生12秒的延迟。但是,开发和测试环境也配置错误,但尚未显示延迟。这会导致Java在访问本地JAR文件时出现延迟吗

Tomcat已经分配了1500MB的最大内存。GC是ConcurrentMarkSweep,使用的内存从未超过800MB


该服务器使用Windows 2003、Tomcat 5.5.23、Java 1.5.0-v14构建。任何关于正在发生的事情的线索都将不胜感激。

听起来类加载器正试图通过您的代理与internet对话。我会检查你配置类加载器的方式。请记住,类加载器将首先隐式委托其父类加载器链,因此您还需要检查它们

如果您临时告诉Java使用内部代理,这样您就可以看到类加载器试图从internet获取什么,那么它可能会帮助您跟踪问题

Fri Mar 02 17:02:04 EST 2012    About to open: E:\mycompany\Apps\Apache\Tomcat 5.5\webapps\application\WEB-INF\lib\log4j-1.2.15.jar