今天碰到一个问题,在使用eclipse时,明明里面已经配了一个tomcat并且启动了该tomcat,发现功能文件可以在浏览器中正常访问,但是当我输入“http://localhost:8080“结果显示为404,我的第一反应是:webapps目录下的root文件应该是被删了,但是后来发现他们都在tomcat的安装目录下,那么应该就是eclipse有自己的部署文件位置。后来双击tomcat服务器进入Overview页面,发现tomcat部署的文件目录在workspace metadata默认目录下,并不在webapps目录中,这时需要将他更改为webapps目录下怎么做呢?
- 右键server,选择properties,将workspace metadata转换为另一种状态,这时可以发现Overview页面中server location栏下之前不可选状态变为可选状态;
- 选择use custom location,选择文件部署目录
- 保存配置文件
有些人在修改完后,启动tomcat会报如下错误:
Publishing the configuration... Error copying file to /usr/share/tomcat7/backup/catalina.policy: /usr/share/tomcat7/backup/catalina.policy (No such file or directory) /usr/share/tomcat7/backup/catalina.policy (No such file or directory) Error copying file to /usr/share/tomcat7/backup/catalina.properties: /usr/share/tomcat7/backup/catalina.properties (No such file or directory) /usr/share/tomcat7/backup/catalina.properties (No such file or directory) Error copying file to /usr/share/tomcat7/backup/context.xml: /usr/share/tomcat7/backup/context.xml (No such file or directory) /usr/share/tomcat7/backup/context.xml (No such file or directory) Error copying file to /usr/share/tomcat7/backup/server.xml: /usr/share/tomcat7/backup/server.xml (No such file or directory) /usr/share/tomcat7/backup/server.xml (No such file or directory) Error copying file to /usr/share/tomcat7/backup/tomcat-users.xml: /usr/share/tomcat7/backup/tomcat-users.xml (No such file or directory) /usr/share/tomcat7/backup/tomcat-users.xml (No such file or directory) Error copying file to /usr/share/tomcat7/backup/web.xml: /usr/share/tomcat7/backup/web.xml (No such file or directory) /usr/share/tomcat7/backup/web.xml (No such file or directory)
这个错误通常在linux下或者osx下,而且tomcat目录不再当前user所属文件目录下,这时eclipse并没有权限到系统中tomcat安装目录下创建这样一个backup目录,因为我们可以自己手动建一个这样目录,然后赋予读写权限即可:
cd /usr/local//usr/local/apache-tomcat-8.5.4
sudo mkdir backup
sudo chmod 777 backup
这样应该就ok了。
Operation not permitted情况发生了怎么办?
之前我的tomcat是放在/usr/local目录下,因此用户是root,但是后来发现项目在eclipse中部署不是很容易,因为每次都要手动输入部署tomcat路径,这里我移动到了~/Development目录下,然后重新到eclipse server中重新配置了tomcat路径,然后在Overview中配置好了后,启动tomcat,告诉我什么conf目录下文件没有权限访问,很明显我只是需要更改一个文件的权限即可(当是没注意到这些文件现在都属于root用户而不是当前用户):sudo chmod 777 conf/*
, 还是报那个错误,后来Google了一下,别人都没有碰到这个问题,有人说是osx系统本身对某些文件的保护,然后要修改System Integrity Protection配置,我觉的这个好扯淡,我只是要更改当前用户目录下一个简单的文件目录,至于要更改SIP吗?这里只需要执行下面三步:
sudo chown -R Crabime ~/Development/apache-tomcat-8.5.4/* #将tomcat整个目录指定当前用户为拥有者
cd ~/Development/apache-tomcat-8.5.4/ #进入安装目录,查看此时文件夹信息
ls -lrt #发现文件全部属于Crabime
当文件都属于当前这个用户时,在eclipse启动tomcat时就不存在权限问题了。如果有些人发现文件不能执行,那么执行chmod命令应该就可以了。