是什么让Tomcat5.5无法“意识到”新的Java Web应用程序?

时间:2010-06-09 01:14:19

标签: java deployment tomcat netbeans

这是针对uni的家庭作业,但我认为这对我的uni上的Tomcat服务器(版本5.5.27)来说是一个普遍的问题。

问题是,我首先使用捆绑的Tomcat 6.0.20(localhost:8084 / WSD)使用NetBeans 6.8做了一个骨架Java Web应用程序(只是一个简单的Servlet和一个欢迎文件,没有任何复杂,没有包含lib)

然后,为了测试并证明它是“可移植的”和“可自动部署的”,我清理并构建了一个WSD.war文件并将其放到我的Xampp Tomcat(localhost:8080 / WSD)上。战争相应地提取了一切,我可以看到这个Tomcat的相同输出。到目前为止,非常好。

然而,在我试图对单一服务器进行战争之后,有趣的事情发生了:

uni server

即使我已将战争许可改为755,但它根本就没有“响应”。

然后我将提取的文件复制到uni服务器,MainServlet无法从其Context Path“/ WSD”中识别,基本上没什么用,期望静态index.jsp。我试过几次停止并重启uni Tomcat,它没有帮助?

我想知道是什么让这件事发生的?我的方法有什么问题吗?

坦率地说,我没有注意到一个不受我控制的服务器,不幸的是,我现在不是一个真正活跃的日常Java程序员。我理解MVC,Servelets,JSP,JavaBeans的基础知识,但我真的对此感到沮丧,因为我看不出原因......

或者,我应该问,在NetBeans6.8清理和构建之后,Java Web应用程序是自包含的并且是自我配置的,因此可以部署到任何Java Web容器中吗?

我知道,我当然可以使用普通的JSP编写所有内容,但这对我来说是不可接受的... ...

更新:

我现在想知道是否有任何免费的Tomcat托管,以便我想看看我的war文件和/或我的网络应用程序是否可以随身携带而没有任何配置?

第二次更新:

matt b提出了一个很好的观点,所以我以特别的方式检查了我的环境: a fake JSP page that goes to nowhere

我确实看到Tomcat 5.5.27这个词提示......

另外,另一个测试页面,看看uni是否已经为MySQL安装了JDBC驱动程序(我很高兴看到他们这样做了,正如所承诺的那样):JSP JDBC Test Page

所以Resin或Tomcat ......我现在还不能说出来:))

我的同事证实,我们确实分享了相同的环境。根据Http头文件(curl -I输出)

2 个答案:

答案 0 :(得分:2)

除Tomcat之外的其他服务器都在为您的文件提供服务(请参阅返回的标头如何用于Apache Web服务器),或者如果您的环境设置为Apache HTTP服务器代理对Tomcat的请求,那么您的设置就会出错。< / p>

$ curl -I http://www-student.it.uts.edu.au/~cmao/WSD/WEB-INF/web.xml

HTTP/1.1 200 OK
Date: Wed, 09 Jun 2010 01:17:42 GMT
Server: Apache/2.2.10 (Unix) PHP/5.2.6 Resin/3.1.7a mod_perl/2.0.3 Perl/v5.8.8
Last-Modified: Wed, 09 Jun 2010 01:17:42 GMT
ETag: W/"d0304-2f3-4889b8d410680"
Accept-Ranges: bytes
Content-Length: 755
Content-Type: application/xml

Tomcat通常不会提供WEB-INF或web.xml文件。

此外,Server标头提到了Resin,它是Tomcat的竞争servlet容器。也许配置不正确?

答案 1 :(得分:1)

上面的标题表示Apache2服务器,它可能是Tomcat服务器的前端。 Tomcat服务器可能位于8000范围内的端口,可能是8080.要查找应用程序,需要将Apache配置为将/ WSD请求转发到Tomcat。