您的位置:首页 > 运维架构 > Tomcat

JBoss、Tomcat进行java web开发时8080端口被占用的问题!

2007-07-19 00:42 423 查看
最近在用JBoss和Tomcat开发时遇到了一个问题:

http://localhost:8080 总会弹出个对话框 

XDB 用户名 密码 用tomcat的用户名和密码不对,重装Tomcat也不行,用机器的开机密码也不行....

为什么会弹这个框呢?后来试着把tomcat和jboss的默认端口号分别改为8081和8089,此时web工程可以打开了.这说明8080被占用了!到底是谁占用了8080端口呢?

首先开始---运行--- cmd,进入dos命令行,输入: netstat -a -n

查看到TCP和UDP连接的端口号及状态,发现8080状态是listening,确定肯定是哪个程序占用了8080,想想我的机器装了tomcat,jboss,weblogic,mysql,oracle,sqlserver......,通过仔细思考觉得问题可能出在Oracle身上,上网一查果真是oracle的XDB占用了这个端口,怎样解决呢?在网上找到了两篇文章:

文章一:

从9i 开始,oracle的安装缺省包含了XDB。在数据库后,Oracle XDB的http服务自动霸占了8080端口,这给使用或JBoss、Tomcat进行java web开发的人造成了不小的麻烦。 这里介绍修改XDB的http和ftp服务端口的3种方法:

  1.使用dbms_xdb包修改端口设置

  使用sys登录sqlplus
sqlplus sys/syspassword as sysdba
然后执行如下的脚本
============================
-- Change the HTTP/WEBDAV port from 8080 to 8081
call dbms_xdb.cfg_update(updateXML(
dbms_xdb.cfg_get()
, ''/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()''
, 8081))
/
-- Change the FTP port from 2100 to 2111
call dbms_xdb.cfg_update(updateXML(
dbms_xdb.cfg_get()
, ''/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()''
, 2111))
/
COMMIT;
EXEC dbms_xdb.cfg_refresh;


  2.使用OEM console


  选择数据库,XML Database,Configuration。更改XDB的有关设置。

  3.修改SPFILE[SID名].ORA文件,去掉数据库的初始化参数:

  这个文件是Oracle的启动配置文件dispatchers=''(PROTOCOL=TCP) (SERVICE=XDB)'',将会禁止XDB的http和ftp服务。

   重启计算机,或者在服务中重启OracleService[SID名]这个服务。重启后可能无法使用Enterprise Manager Console和其他客户端连接,这时请使用Oracle的Configuration and Migration Tools/Net Configuration Assistant工具删除监听器,然后新建一个监听器,重启监听器。

文章二:

function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}



Oracle数据库取消8080端口占用


安装Oracle数据库后,当我们访问8080端口时,会弹出一个XDB窗口,要求输入用户名和密码。这样将和我们本地一些使用该端口的应用冲突,比如tomcat、jboss等,虽然这些端口是可以修改的,但总是不爽oracle一直占用这个端口。以下是我找到的一个方法,我已经试验成功了,如果你想用此法进行修改,请首先备份数据库重要内容,如果操作不慎,难免要重装数据库。

Oracle数据库可以使用TCP协议通过8080端口进行连接,所以占用了8080端口。
要取消占用,可以打开Oracle安装目录下的database目录内的SPFILE[SID名].ORA文件进行修改。这个文件是Oracle的启动配置文件。
把其中的*.dispatchers='(PROTOCOL=TCP) (SERVICE=or9iXDB)'这一行去掉即可。
然后重启计算机,或者在服务中重启OracleService[SID名]这个服务。重启后可能无法使用Enterprise Manager Console和其他客户端连接,这时请使用Oracle的Configuration and Migration Tools/Net Configuration Assistant工具删除监听器,然后新建一个监听器,重启监听器。
使用Configuration and Migration Tools/Net Manager工具,将服务命名删除,然后新建一个。

现在Oracle应该就可以正常使用,8080也不会占用了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: