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即可啟動;