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

在使用JBoss和Tomcat进行Java Web开发时遇到8080端口被占用的问题,发现是Oracle的XDB服务导致。通过修改Oracle的配置文件、使用dbms_xdb包或OEM console可以解决这个问题,释放8080端口供Web服务器使用。

最近在用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工具删除监听器,然后新建一个监听器,重启监听器。

 文章二:


        安装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也不会占用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值