Simptom:
与Tomcat 7服务器的任何类型的连接都会给出一个空白页面。日志注册为此,有JSP页面连接或我知道在服务器中可用的单个JPG文件:
192.168.0.130 - - [23/Apr/2015:00:45:53 -0300] "GET / HTTP/1.0" 404 -
192.168.0.130 - - [23/Apr/2015:00:51:23 -0300] "GET / HTTP/1.0" 404 -
172.18.109.82 - - [23/Apr/2015:14:00:59 -0300] "GET /APPS/portal/index.jsp HTTP/1.1" 404 -
172.18.109.82 - - [23/Apr/2015:14:00:59 -0300] "GET /favicon.ico HTTP/1.1" 404 -
172.18.109.82 - - [23/Apr/2015:14:01:18 -0300] "GET /APPS/portal/index.jsp HTTP/1.1" 404 -
172.18.109.82 - - [23/Apr/2015:14:01:52 -0300] "GET /APPS/portal/index.jsp HTTP/1.1" 404 -
172.18.109.82 - - [23/Apr/2015:14:01:55 -0300] "GET / HTTP/1.1" 404 -
127.0.0.1 - - [23/Apr/2015:14:02:30 -0300] "GET /manager/html HTTP/1.1" 404 -
172.18.109.82 - - [23/Apr/2015:14:15:44 -0300] "GET /APPS/portal/imgs/main.jpg HTTP/1.1" 404 -
它是Windows 2008 R2服务器,它在端口8088上运行.NET,在端口80上运行Tomcat。
我尝试过的事情:
检查Tomcat中的conf文件是否已更改。一切似乎都很正常。 server.xml的port和baseapp都是正确的。
Windows防火墙仍具有正确的入站规则。我甚至可以ping IP,内网DNS工作正常。
使用.NET端口的网站运行正常。问题出在Tomcat 7上。
如何进一步调试此情况?
编辑:
只是添加了我尝试考虑评论的其他内容:
禁用.NET
检查.NET日志以检查它是否在窃取任何内容。
更改Tomcat端口
检查Tomcat日志以查看应用是否正确启动。
检查我是否有ROOT网络应用。
答案 0 :(得分:4)
那些是Tomcat访问日志?如果是这样,它们意味着请求到达Tomcat,具有正确的requestURI行(您在日志中正确地看到它们而不是垃圾),但Tomcat生成状态为404且大小为0(' - ')的响应。
404错误的空白响应通常表示没有“ROOT”Web应用程序(即默认Web应用程序)正在运行。
当请求无法路由到Web应用程序时(没有部署匹配的Web应用程序,并且默认情况下没有部署ROOT应用程序将其路由到那里),Tomcat必须在早期阶段拒绝它。
当请求处理在早期阶段中止时(在连接器中,在到达servlet引擎之前,ErrorReportValve)Tomcat产生一个空响应,其中包含正确的HTTP错误代码和原因短语和标题,但内容长度为零。
所以,
检查您的Web应用程序已成功启动的Tomcat启动日志。
确保您拥有ROOT网络应用。如果server.xml中有多个<Host>
元素 - 每个元素都有一个ROOT Web应用程序。
只需要一个空的“webapps / ROOT”文件夹即可解决此问题。没有必要。 (没有必要使用WEB-INF / web.xml文件。默认值是从全局conf / web.xml继承的。)
确保<Engine>
文件中server.xml
元素的“defaultHost”属性与现有<Host>
名称匹配。
答案 1 :(得分:1)
你可以尝试
同时拥有IIS和Tomcat的一种方法是让IIS使用外部请求并将其转发到不同本地端口上的Tomcat。