Caused by: Unable to load configuration. - Class: java.net.SocketInputStream File: SocketInputStream.java Method: read Line: 210 - java/net/SocketInputStream.java:210:-1 at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:70) at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:967) at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:435) at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:479) ... 14 more Caused by: Unable to load file:/F:/user/workspace/erp_parent/erp_web/target/classes/struts.xml - Class: java.net.SocketInputStream File: SocketInputStream.java Method: read Line: 210 - java/net/SocketInputStream.java:210:-1 at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:1027) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:167) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:134) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:239) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67) ... 17 more Caused by: Connection reset - Class: java.net.SocketInputStream File: SocketInputStream.java Method: read Line: 210 - java/net/SocketInputStream.java:210:-1 at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:119) at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:1021) ... 21 more Caused by: java.net.SocketException: Connection reset at java.net.SocketInputStream.read(SocketInputStream.java:210) at java.net.SocketInputStream.read(SocketInputStream.java:141) at java.io.BufferedInputStream.fill(BufferedInputStream.java:246) at java.io.BufferedInputStream.read1(BufferedInputStream.java:286) at java.io.BufferedInputStream.read(BufferedInputStream.java:345) at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:735) at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:678)
表现:突然间tomcat一直启动不起来。
原因:连接ORACLE服务器,客户端要生成随机密钥用于客户端认证,JDK默认使用/dev/random,random采用阻塞方式生成随机数,生成的速度很慢,ORACLE服务器会主动reset,并在alert.log中报错。
解决:编辑自己的java安装路径,笔者路径D:\Program Files\Java\jre\lib\security\java.security中将securerandom.source=file:/dev/random改为
1、file:/dev/urandom(urandom采用非阴塞式生成随机数,性能很好,不会产生超时)
2、file:/dev/./urandom
3、file:/dev/…/urandom
可以轮流尝试上面三种方式直到你tomcat启动为止。我尝试我换成第一种,securerandom.source=file:/dev/urandom即可启动;