最近把笔记本上的win7格掉换成ubuntu了,果然如谢耳朵所言:“ubuntu你真是世界上最好用的系统!”。不过初装还是会碰到很多问题的,昨天在eclipse里新建server时就遇到一个怪问题,跟度娘缠绵了半宿总算解决了,今天把解决过程记录下来以后备查。
问题是这样的,我在eclipse里导入了一个从前在windows下建立的web项目,因为要调试嘛,准备新建一个server,然后在new server的窗口中就见鬼了,server name输入框是空的(正常情况下这里应该有个默认名称的),也输入不了任何字符。就像下面的图显示的状况:
于是怒上度娘,反复抽插多次后度娘吐出点有用的东西。是个老外发的帖子,全片的English,好在我精通多国英语,能用各省方言说Hello World。我给您翻译一下这个帖子,意思是这样的:
1. 退出Eclipse
2. 在“{你的工作目录}/.metadata/.plugins/org.eclipse.core.runtime/.settings”这个目录下,有这么两个文件:
org.eclipse.wst.server.core.prefs
org.eclipse.jst.server.tomcat.core.prefs
不要犹豫,删掉!
3. 重启Eclipse,好了!
我照这老外说的一试,还真灵,server name有内容了!不过没高兴两分钟,才点两下按钮,咣一声又爆出个对话框“Could not load the Tomcat server configuration at /Servers/Tomcat v7.0 Server at localhost-config. The configuration may be corrupt or incomplete.”
这事还是得找度娘啊,别怜香惜玉,必须反复大力抽插!从错误提示“/opt/tomcat/conf/catalina.policy(权限不够)”得到些启示,估摸着还是跟linux的文件读写权限有关,果然,找到篇文章是这么说的:
在{还是你的工作目录}/Servers/<Tomcat version> Server at localhost-config下面应该有如下文件:
catalina.policy
catalina.properties
context.xml
server.xml
tomcat-users.xml
web.xml
如果上面的文件没有在相应的文件夹,需要把这些文件从{你的tomcat安装目录}/conf文件夹中复制到{依旧是你的工作目录}/Servers/<Tomcat version> Server at localhost-config下面。
然后我上{tomcat安装目录}/conf下去一看,果然这几个文件的权限是这样的:
drwxr-xr-x 2 root root 4096 3月 31 22:45 .
drwxr-xr-x 9 root root 4096 6月 18 00:59 ..
-rw------- 1 root root 11955 3月 31 22:45 catalina.policy
-rw------- 1 root root 5402 3月 31 22:45 catalina.properties
-rw------- 1 root root 1394 3月 31 22:45 context.xml
-rw------- 1 root root 3288 3月 31 22:45 logging.properties
-rw------- 1 root root 6435 3月 31 22:45 server.xml
-rw------- 1 root root 1530 3月 31 22:45 tomcat-users.xml
-rw------- 1 root root 152716 3月 31 22:45 web.xml
于是果断用chmod 666 *命令把文件权限改成这样:
-rw-rw-rw- 1 root root 12257 10月 9 16:38 catalina.policy
-rw-rw-rw- 1 root root 6322 10月 9 16:38 catalina.properties
-rw-rw-rw- 1 root root 1394 10月 9 16:38 context.xml
-rw-rw-rw- 1 root root 3288 10月 9 16:38 logging.properties
-rw-rw-rw- 1 root root 6613 10月 9 16:38 server.xml
-rw-rw-rw- 1 root root 1530 10月 9 16:38 tomcat-users.xml
-rw-rw-rw- 1 root root 166499 10月 9 16:38 web.xml
再次打开eclipse新建server,这次一切顺利!
回头来总结一下啊,这起灵异事件的来龙去脉应该是这样的:
首先导入的web项目,在目录中还残留有以前的server配置文件,就是org.eclipse.wst.server.core.prefs,org.eclipse.jst.server.tomcat.core.prefs这两个,不删掉就没法新建server。
其次eclipse在新建server时,要从你安装的tomcat目录下拷贝几个配置文件到工作目录里。这一步在windows下不会有任何问题,在ubuntu下就难说了。我们知道,ubuntu下一般不用root用户登录,而我的tomcat是用sudo安装的,下面的所有目录和文件权限都是root的,这样eclipse在用当前登录用户的身份拷贝文件时就会碰到权限不够的错误了。
文中提到的两处资料的原文地址在:
http://www.xuebuyuan.com/1361033.html
http://jingyemingyue.iteye.com/blog/1849880
在此特向两位作者鸣谢。
欢迎扫码关注我的微信公众号
君子爱财取之有道