最近在用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_upda te(updateXML( dbms_xdb.cfg_get() , ''/xdbconfig/sysconfig/protocolconfig/httpc onfig/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,Configurati on。更改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工具删除监听器,然后新建一个监听器,重启监听器。
文章二:
安装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也不会占用了。