解决方案 »

  1.   

    首先楼主查看下是否是防火墙问题。如果排除防火墙的问题,那么基本上就是楼主本机监听设置问题,把监听地址改成你主机的IP或者主机名,把localhost或者127.0.01替换掉就可以。
      

  2.   

    我觉得应该不是防火墙的问题,您可以看一下我发的图片,tomcat是启动在win7上的,我是从虚拟机浏览器里输入物理机ip地址192.168.207.116访问到的。因为如果是防火墙的问题的话我虚拟机里面的浏览器应该是访问不到物理机的tomcat的。而且我的plsql可以访问到我们公司的远程数据库,所以我在想是不是我本机的数据库设置有问题,您说的监听地址那个问题要怎么改呢?
      

  3.   

    将主机数据库监听端口换一个试试:找一个能ping通且没有被占用的端口。修改主机中listener.ora中的端口号,重启监听;
    然后在客户端的tnsnames.ora中对应修改端口号
    再连接试试
      

  4.   

    我尝试了一下,好像不是这个原因。
    我在win7本机中telnet 127.0.0.1 1521这个端口可以通,但是telnet 192.168.207.116 1521这个就不通,(192.168.207.116 1521是我在cmd窗口中 ipconfig查到的ip地址,虚拟机中的浏览器访问win7本机的tomcat也是这个地址却可以通)这是为什么?
      

  5.   

    楼主在本机打开一个cmd窗口运行lsnrctl status。
    然后再虚拟机里面打开个cmd窗口  tnsping tns_name, 把tns_name换成你的数据库连接串。然后贴图
      

  6.   

    我的虚拟机里面没有装数据库,所以好像是没有tnsping的命令的。因为把电脑从公司搬到家里了,网络环境有所变化,ip有变化,不过不影响主机和虚拟机之间的通信。虚拟机ping主机能通,telnet 1521端口不通。具体见截图。
    对了  我在主机里面装了个mysql,虚拟机里的navicat for mysql可以连接到主机,所以我在想这个可能不是网络的问题,是不是我的oracle关闭了什么端口或者是因为win7和oracle都是64位的原因?
      

  7.   

    还真是这个原因,不过我把地址改成了本机的ip地址后,本机也不能用127.0.0.1来telnet了,只能用ip了。如果我更换了网络环境,那是不是还得再去改ip呢?连本机访问时也要改ip?还有个疑问,就是我的本机 无法ping通虚拟机里的ip 您知道这是什么情况么? 我所有安装在虚拟机里的软件如tomcat,本机都访问不到。。这是我虚拟机里的网络设置方式
      

  8.   

    把网络类型改成hsot-only,然后监听里写vbox安装的那块网卡的地址