关于Tomcat 4.0(100分)

  • 主题发起人 主题发起人 Hank
  • 开始时间 开始时间
H

Hank

Unregistered / Unconfirmed
GUEST, unregistred user!
有一个Servlet实现了ServerSocket,我配置它在Tomcat 4.0启动的时候
自启动,在固定的端口监听客户端的请求。
当我没发布这个Servlet的时候,Tomcat 4.0能提供正常的服务。
当我在conf/server.xml中增加相应的<Context>, 在conf/web.xml中增加
相应的Servlet配置,并将包含该Servlet的WAR包发布到webapp下面,然后
启动Tomcat, 我能看得到Tomcat standalone服务启动,我的servlet也启动
了。相应的端口也都打开了,可是,打开的所有服务端口都不对外提供服务
(包括Tomcat的8080端口也连接不上)。
这是为什么?
运行环境:win2K server, JDK1.3, Tomcat4.0
 
对了,服务的启动顺序是这样的:
Service Tomcat-standalone
myServlet
但是很奇怪,Service Tomcat-apache没启动
 
Service Tomcat-apache也不是没启动,端口已经打开了,但是没有往常的
提示信息:
Starting service Tomcat-apache
Tomcat-apache/4.0
没有人知道问题出在哪里么?
如果真的没人碰到过类似的问题,那哪未能不能告诉我这种问题有可能在什
么地方找到答案?国外的网站也行,我是真的不知道为什么会这样了。
 
我就是用tomcat做jsp服务器,遇到过类似问题
有可能你还有激活其它的http服务应用,刚好它也用到了这个端口,将有8080的停掉,你用个工具测试是否有别的软件在用此端口
如果还不是这个原因请将它的问题和配置详细告知
 
没有。我用netstat查看了,没有任何其他应用使用这些端口。而且,在我
启动Tomcat后,这些端口也确实打开了。但是客户端总是连不上,不知为什么?
我的具体配置是:
window2000 server+pack2, JDK1.3, Tomcat4.0
问题是:
如果不发布我的servlet, Tomcat一切正常。
如果我的Servlet在JBuilder5+Tomcat3.2中测试,也一切正常。
但是如果将我的Servlet发布到Tomcat4.0下,在web.xml中配置
<load-on-startup>10</load-on-startup>
使它随Tomcat一起启动,在启动Tomcat后,用netstat -an命令
查看,端口8080, 8008, 5188(我的Servlet所监听的端口)都已
打开(启动Tomcat之前这三个端口是没打开的)。[red]现在问题来了[/red]
我的客户端通过socket连不上服务器的 5188 端口
同时,客户端通过http也连不上服务器的 8080 端口
这是为什么?
 
To htw,
Thanks.
To all,
I am longing for your response. Thank you all.
 
我不知道为什么,关注这个问题
 
please chnage your server. try JRun or resin or WebSphere.
I have never meet this problem using these 3 servers.
 
谢谢大家。 我知道问题出在什么地方了,但是却有一个疑问。
根据Servlet的规格说明,Servlet在启动时应该是在单独的线程里,我也
一直认为如此。事实上,当Servlet不是随服务器(如Tomcat, Weblogic)
一起启动,好像也确实是在单独的线程里运行的。
但是,当我配置我的Servlet为startup class时,由于我在Servlet的
init()里打开了一个ServerSocket,但该ServerSocket对象调用accept()
时,该线程阻塞了,[red]奇怪的事情出现了[/red],现在,我整个的服务器--不管
是Tomcat还是Weblogic都一样--都阻塞了,不能再对外提供服务。当我在
一个单独的线程里建立ServerSocket对象,打开端口监听时,服务器就能
对外提供服务。
这是为什么? 难道我的Servlet是在服务器的主线程里运行的么?
哪位对Servlet及其容器了解得比较清楚的,不知能不能解释一下?
谢谢!
 
多人接受答案了。
 
后退
顶部