tomcat的默认端口为8080而oracle9i中的TNSLSNR.exe进程占用了。
2 @; d7 A3 g& R) q& u 从Oracle 9i开始,Oracle的安装缺省包含了XDB。在启动数据库后,Oracle XDB的http服务将会自动占用了8080端口,这给使用或JBoss、Tomcat进行java web开发的人造成了许多不必要的麻烦。
9 v+ s& m4 l/ j0 F9 Q2 E DLL 文件: tnslsnr.exe
0 z6 n Q3 @! {/ K, Y# ?% L DLL 名称: tnslsnr.exe
6 w- a5 W4 B0 x% Y8 J 描述:
( S2 \2 `. h5 ?) ^) x OracleSQL的监听器服务。5 i$ |# F, z5 j/ Z
同时你可在cmd窗口中输入netstat -anb 然后回车。即可查看所有的端口占用情况。% W" u+ ]/ }! e9 G. N
此问题还有一个表象:就是输入网页地址会弹出一个要求输入用户名和密码的窗口,窗口名字是叫XDB。
* ~1 O- Z/ l7 | 可以有两种方法解决:
& F x' U4 Z# X. f+ p1 r 1. 改tomcat的监听端口.
- s1 x0 g \$ f) V; V# n% q 修改$tomcat_home/config/server.xml中host节点的port值
. ~7 r! ?6 B- J 2.修改oracle默认的xdb监听端口# _" M2 y8 ]& R! y$ I$ A
Oracle 9i创建数据库时默认包含了XDB特性。一旦启动了数据库和Listener,Oracle XDB的http服务就占用8080端口,9 O! Y/ r% B5 t) ]+ ^- r9 D# d
刚好和JBoss、Tomcat等默认端口冲突,Oracle XDB的端口设置不在配置文件中,而是在数据库里。
2 |, l$ K7 @2 K 修改XDB的http和ftp服务端口的方法有3种:& _3 y5 I1 V' F- E8 T
1.使用dbms_xdb包修改端口设置
- Q% G4 f2 c, Q% M0 _+ }6 ]( l 使用sys登录sqlplus
) {. R: z. R( ~/ C) T sqlplus sys/password as sysdba8 Z& f7 N: K, L: w/ Y
执行如下的脚本:
& S' E* `8 V; U -- Change the HTTP/WEBDAV port from 8080 to 8081
/ L i1 Z) ~9 R/ @. j call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(), '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()' , 8081))' y% H; I/ V+ s" O
/
. K& E) r. r0 G4 J- o -- Change the FTP port from 2100 to 2111' \1 D; H) z$ I1 f
call dbms_xdb.cfg_update(updateXML( dbms_xdb.cfg_get() , '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()' , 2111))
8 {& ^' w- C6 L2 G /
6 z# F# ?9 ]! ?8 A" G% t COMMIT;5 [8 u- Y! d' P& E1 _
EXEC dbms_xdb.cfg_refresh;
7 F6 {# x6 [* `7 {7 ~/ Q. V 2、使用OEM console,选择数据库,XML Database,Configuration,更改XDB的有关设置。
- P# @: y& R6 {5 q2 P0 p# t+ P 3、去掉数据库的初始化参数:
1 c6 W! ~) E4 R* z8 U5 p' K' m dispatchers='(PROTOCOL=TCP) (SERVICE=XDB)',将会禁止XDB的http和ftp服务。
( H, O' u9 `8 X 操作完三种方法后,需要重启计算机,或者在服务中重启OracleService[SID名]这个服务。0 T& N) \$ ?1 G9 o2 h' h i! m, D$ k
重启后如果无法使用Enterprise Manager Console和其他客户端连接,请使用Oracle的Configuration and Migration Tools/Net Configuration Assistant工具删除监听器,然后新建一个监听器,最后重启监听器。 |