oracle的java驱动thin方式在linux RedHat7.3遇到的问题,请教高手

oracle的java驱动thin方式在linux RedHat7.3遇到的问题,请教高手

环境:
一台数据库服务器:linux redhat7.3+J2SDK1.4.2_04+oracle8iEE8.1.7;
一台web应用服务器:linux redhat7.3+J2SDK1.4.2_04+TOMCAT5.0.27;
目标:
web应用服务器通过oracle的java驱动thin方式访问数据库服务器;
问题:
web服务器上的oracle的java驱动thin方式无法访问数据库,抛出的错误为IO错误,如下:
java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:210)
        at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:323)
        at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:263)

        at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.java:365)
        at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:260)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at java.sql.DriverManager.getConnection(Unknown Source)
        at TestAcct.main(TestAcct.java:15)
小的测试脚本代码:
import java.sql.*;

public class TestAcct
{
        public static void main(String args[])
        {
                try
                {
                        Class.forName("oracle.jdbc.driver.OracleDriver");
                        Connection con=DriverManager.getConnection("jdbcracle:thin192.168.1.12:1521:test","test","test");
                        Statement st=con.createStatement();
                        String Sql="select realname from userctl where user_name='test'";
                        ResultSet rs=st.executeQuery(Sql);
                        if( rs!=null)
                        {
                                while( rs.next() )
                                {
                                        System.out.println(rs.getString(1));
                                }
                                rs.close();
                        }
                        st.close();
                        con.close();
                }
                catch(Exception e)
                {
                        e.printStackTrace();
                }
        }
}
已做的检查:
1、两台机器都没有防火墙;
2、该脚本在数据库服务器上能执行并返回正确的值打印;
3、该脚本在任意一台linux上都能访问由W2K+oracle8.1.7架构的数据库服务器,却不能在两个linux服务器间访问,报错信息相同;
4、oracle的listener都已经确认启动;
5、用PL SQL Developer都能访问数据库,用SQL命令“select * from product_component_version”查看产品信息视图,
linux下为:
1        NLSRTL         3.4.1.0.0        Production
2        Oracle8i Enterprise Edition         8.1.7.0.1        Production
3        PL/SQL         8.1.7.0.0        Production
4        TNS for Linux:         8.1.7.0.0        Development
W2K下为:
1        NLSRTL         3.4.1.0.0        Production
2        Oracle8i Enterprise Edition         8.1.7.0.0        Production
3        PL/SQL         8.1.7.0.0        Production
4        TNS for 32-bit Windows:         8.1.7.0.0        Production
只有2、4项有区别。
请教是否有高手知道问题在哪里?如何解决?还有什么我没想到的?
谢谢!      
是否有高手知道,讨论一下。