Linux 应用程序应用 localhost 的问题

Posted 陈科肇

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux 应用程序应用 localhost 的问题相关的知识,希望对你有一定的参考价值。

陈科肇

============

最近碰到一个奇葩的问题:

前提 -- Linux 环境下;Oracle数据库已经搭建完成;Tomcat也搭建完成并部署了应用程序;

原因:

我在win7下在tomcat里部署了与Linux部署的是同一个应用程序,然后访问了Linux里的Oracle数据库,这个测试是成功了,应用程序能正常运行。

然而当我转到Linux环境下Tomcat部署应用程序时,应用程序的登录页面是可以正常访问的,因为这时还需要连接数据库,所以能正常运行。但一到了访问数据库时,就报错,我查看了Tomcat的log,发现如下:

Hibernate: 
    select
        systemid 
    from
        hidp_sys_is 
    where
        systemcode=? 
AbandonedObjectPool is used (org.apache.commons.dbcp.AbandonedObjectPool@5572a255)
   LogAbandoned: false
   RemoveAbandoned: true
   RemoveAbandonedTimeout: 600
2015-02-05 16:23:16  [ http-bio-8080-exec-9:18957 ] - [ ERROR ]  Cannot create PoolableConnectionFactory (The Network Adapter could not establish the connection)

我就纳闷,怎么就访问不了数据库了,之前在Windows时不就好好的吗,真是奇葩!

=================================================================

解决方案:

我想想一会,突然想起了,之前配置Oracle实例的时候,发现localhost在Linux下是没用的。

没错,问题就是卡在这。

然后就把你配置的“数据源”时写的localhost改为你本机的IP地址,即可正常访问数据库。

========

注:在上面所描述的问题,你可以使用IP地址进行设定,如果你想使用localhost设置定位本机IP,请往下看

这也就是关于,在Linux 下,怎么获取本地主机IP的问题了!

Linux修改localname:

首先使用命令查看localname的指南: #man localname,看完指南你就可以知道个大概意思了!

可以看到有一段文字的描述:

FILES

/etc/hosts  /etc/sysconfig/network

NOTE

note that hostname doesn't change anything permanently.after reboot original names from /etc/hosts are used again

这就是表示localname要配置的配置文件路径位置及/etc/hosts描述。

方法一:

使用#hostname修改临时的主机名,但操作系统重启之后,就恢复原样了!

# hostname,该命令是查看主机名;

# hostname -i,该命令是查看主机名对应的IP地址;

方法二:

永久修改主机名,修改配置文件

修改/etc/sysconfig/network,才能有效地修改主机名;

/etc/hosts,hostname命令读取这个配置文件;

直接修改/etc/hosts文件,系统本身用到主机名的地方不会变化,所以 /etc/hosts 是网络中用的,/etc/sysconfig/network是本机起作用 ============== 好了,接下我们配置主机对应的IP地址吧。 打开配置文件 ,# gedit /etc/hosts,可以看到初始的文件是这样的:
上面大概可分为三个部分:网络IP地址 主机名 域名,每部分用空格隔开;(猜想-后面还有,估计是可以一个IP可以对应多个主机,到时实践一下) 嗯,我们就按照这个格式把# hostname查询出来的主机名对应上应有的网络IP地址吧。 注:在你主机未对应网络IP时,你执行# hostname -i,结果是显示“未知主机”的
再执行以下命令,看出结果了吧
=================== 接下来,我们再测试下把WEB APP配置的“数据源”的IP地址改回localhost,看看是什么结果 额。。。问题没解决 待续...

以上是关于Linux 应用程序应用 localhost 的问题的主要内容,如果未能解决你的问题,请参考以下文章

如何为 Linux 应用程序生成证书?

为dotnet应用指定启动的端口

全国计算机等级三级Linux应用与开发技术考试-第4章shell脚本编程基础--练习题

如何从 docker 容器访问 localhost? [复制]

理论:linux系统安全及应用

应用man九章和一些基本操作对linux的初步了解