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应用与开发技术考试-第4章shell脚本编程基础--练习题