- CODE: SELECT ALL
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
从这段配置上来看,似乎程序会到http://java.sun.com/j2ee/dtds/web-app_2_2.dtd去寻找dtd文件,但以前EC V1.2运行在Tomcat 4.1.x上的时候,一直没什么问题,系统就算不能联网,也能正常运行。
但是这种情况在EC 2.0上有点问题。EC 2.0要运行在Tomcat 5.5.23上,今天测试了一下,在断网的情况下,启动tomcat的时候,tomcat在装载EasyCluster的时候,出现了如下的错误:
- CODE: SELECT ALL
=[ERROR]2007-04-09 15:54:51,267 [org.apache.struts.action.ActionServlet:1732] The /WEB-INF/web.xml was not found.
java.net.UnknownHostException: java.sun.com
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:177)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at sun.net.NetworkClient.doConnect(NetworkClient.java:157)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:382)
at sun.net.www.http.HttpClient.openServer(HttpClient.java:509)
at sun.net.www.http.HttpClient.<init>(HttpClient.java:231)
at sun.net.www.http.HttpClient.New(HttpClient.java:304)
at sun.net.www.http.HttpClient.New(HttpClient.java:316)
at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:817)
at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:769)
at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:694)
从这个错误来看,struts无法找到我们的web.xml文件,其实这个文件是存在的,关键错误在于下面一行,无法找到java.sun.com,于是就开始怀疑web.xml文件中上述的一段配置。于是参考了tomcat自带的一个web.xml(位于$CATALINA_HOME/conf/web.xml,这个web.xml是tomcat会自动装载的,也就是说,这里面的配置会影响所有的web应用,tomcat先装载这个web.xml,然后才会去装载每个web app的web.xml,发现这个web.xml中就没有上述的一段配置。
于是在EC 2.0中,去掉了web.xml中上述的那段配置,再启动tomcat,装载我们的应用,就OK了,当然是在断网的情况下了。
看来在tomcat 5中,还是有一些地方和4.x不一样的。以后写web.xml看来不能写上那段配置了。