工作环境:centos7.2
PS:没有耐心的同学可以直接跳到后面的安装方法,对于安装方法大多是网上的,我只是做相关收集和总结
给个tomca和Myeclipset折腾的半死,现在做一些总结
1.一定要分清在什么用户下安装的tomcat(到底是root和自己创建的usr),不然后期会烦死你,有的时候你在当前用户下安装的tomcat却放到
root用户下执行,举个我操作过程中的例子:
org.apache.jasper.JasperException: java.lang.IllegalStateException: No output folder:
关于这个原因主要是权限的问题,在tomcat/work/Catalina/localhost/,主要是这个目录没有被读写的权限,导致文件不能被编译到该指定的工作目录中,此时我们就要针对与这个目录做一些权限的修改权限至少要达到755或者以上,同时注意此处修改权限必须用root身份进行操作,否则不能进行修改,修改完后编译好的jsp文件就在localhost的目录当中了。发现了问题在于work/Catalina/localhost/中无法生成对应文件,把tomcat整个目录、work整个目录都修改了权限仍然不行。最后到具体的目录tomcat/work/Catalina/localhost/进行修改权限OK。
我遇到的这个报错,是因为使用root启动过一次服务,后来用其他用户进行服务的启动,而在启动之前没有删除tomcat/work/目录下的内容,该目录下还是存在属主为root用户的Catalina目录,在使用其他用户执行启动时,由于该Catalina已存在,就不再重新创建,而是增量修改该目录,但是由于其他用户没有权限修改属主为root的目录和文件,因此报错。建议在每次停tomcat成功后,删除tomcat/work/*;如果不想每次都删除,一定要保证每次启动tomcat使用的用户要严格正确。
tomcat的work目录
2.端口占用问题,什么(8080,8085,8009)等等,一般来说我们安装tomcat肯定与Myeclipse息息相关,而Myeclipse都自带了tomcat,但是往往我们会去官网下载最新版本。
可能安装的时候,我们有时会出现一种情况:tomcat安装在当前用户,但是Myeclipse可能在root用户。二者用户不统一也往往会遇到各种问题。
有的时候我们刚刚安装好tomcat但再Myeclipse执行过程中会出现端口占用问题,我们应该先通过(查看端口号被占用情况 “sudo lsof -i tcp:端口号”一般默认端口号是8080)来查看端口占用问题,而不能盲目用"./shutdown.sh"来强制关闭tomcat,因为往往有时候明明tomcat没有开启,你用命令强制关闭会弹出
SEVERE: Could not contact localhost:8005. Tomcat may not be running.
Feb 10, 2017 3:35:46 PM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:476)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:408)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:497)
结果还sb的以为tomcat安装有问题。
3.访问文件遇到的用户权限问题,有的时候在Myeclipse启动tomcat服务,出现什么Permission Denied问题,这是访问文件的权限不够,可用修改用户权限(有的时候文件有个锁标记)
” sudo chown -R 当前用户 文件夹“ 其中-R代表递归,意思就是该文件夹下所有子文件都给予所有权限
4.局域网访问的一些问题, 之前一些同事跟我说在服务器上能访问,但是局域网就不能。(网上的一些iptables修改建议就不要用了)
之前用的iptables来管理的防火墙,后来发现centOS7.2中已经用firewalld取代iptables了,
systemctl stop iptables.service#于是与时俱进,停用了iptables。
systemctl start firewalld.service #然后来启动firewalld吧
给我报了这个错 Failed to start firewalld.service: Unit firewalld.service is masked.
查了很久没找到解决办法,于是试着输入了下面这行命令,解决了。
systemctl unmask firewalld.service
启动firewalld.service
systemctl start firewalld.service firewall-cmd --permanent --zone=public --add-port=80/tcp #把80端口添加到防火墙开放端口中
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
systemctl restart firewalld.service #重启一遍firewalld服务使其生效
firewall-cmd --zone=public --query-port=80/tcp #检查更改是否生效
5.当导入webProject运行tomcat时发现错误,如若修改代码,切不能直接运行tomcat。必须重新Redeploy然后再运行tomcat
6.浏览器打开localhost:8080会出现页面错误访问不了! 安装tomcat后,(./startup.sh #开始tomcat)我们第一次往往会打开localhost:8080来验证是否成功,成功的话则会弹出友好界面,过后我们可能执行(./shutdown.sh#关闭tomcat)。防止执行Myeclipse里面的tomcat造成端口冲突。
在做webProject时,我们不需要打开tomcat,因为Myeclipse里面已经绑定好了,此时运行相关项目,如果在浏览器打开localhost:8080会出现页面错误访问不了,可能是你tomcat/webapps下的ROOT文件夹没了,你可以从安装源文件复制进去即可
********************************************************************************************************************************************************************************************************************
********************************************************************************************************************************************************************************************************************
附上相应的安装方法,虽然都是别人的,但也是我试验证明和查找的一些好方法
tomcat安装方法
下载MyEclipse安装包
小指安装测试的版本为:myeclipse-pro-2014-GA-offline-installer-linux.run
个人分享下载:
链接: https://pan.baidu.com/s/1i5c6uZr 密码: t6ee
安装
1.解压获得myeclipse-pro-2014-GA-offline-installer-linux.run文件
2.添加执行权限
sudo chmod a+x myeclipse-pro-2014-GA-offline-installer-linux.run
3.执行安装
sudo ./myeclipse-pro-2014-GA-offline-installer-linux.run
4.安装过程中,选择安装于/opt/MyEclipse/目录下,其他默
认,32位和64位选正确
5.修改权限,添加读写权限即可
sudo chown -R root:root /opt/MyEclipse
sudo chmod -R a+r /opt/MyEclipse
sudo chmod -R a+w /opt/MyEclipse
(个人建议,第一条语句可以换成
sudo chown -R 当前用户 /opt/MyEclipse
)
6.可执行文件重定向添加到/usr/bin/里
sudo ln -s /opt/MyEclipse/myeclipse /usr/bin/myeclipse
7.添加桌面快捷方式
sudo gedit /usr/share/applications/MyEclipse.desktop
粘贴下面的文本
[Desktop Entry]
Encoding=UTF-8
Name=MyEclipse 2014
Comment=IDE for Web&Java
Exec=/opt/MyEclipse/myeclipse
Icon=/opt/MyEclipse/icon.xpm
Terminal=false
Type=Application
Categories=GNOME;Application;Development;
StartupNotify=true
保存后在Dash里可以查看到MyEclipse的快捷方式
8.打开MyEclipse即可使用
安装排错
1.第三步无法打开.run文件,提示java错误
错误原因:java版本错误,需要安装Oracle JDK而不是默认的Open JDK,按上文重新安装配置
2.提示权限错误
The configuration area at '/opt/MyEclipse/configuration' is not writable. Please choose a writable location using the '-configuration' command line option.
错误原因:权限不足,请按上文第五步重新添加读写权限
3.版本错误
错误原因:版本选择错误,请正确选择32位或64位,使用uname命令确认
uname -i
破解
破解时请保持MyEclipse关闭!!!
破解步骤:
1.下载破解文件cracker.jar:链接: https://pan.baidu.com/s/1kVNPw9p 密码: t5x2
2.使用java打开
java -jar cracker.jar
3.配置:
Usercode:随便输入,可设为hostname
版本选择:PROFESSIONAL(默认)
4.SystemId 在右边的SystemId按钮处,连续点击两次。
5.选择Tools->0.RebuildKey,点击
6.点击激活按钮Active
7.选择Tools->1.ReplaceJarFiles,选择/opt/MyEclipse/plugins/目录
8.选择Tools->2.Save properities,保存配置,激活成功
9.检测是否激活成功
打开MyEclipse,选择MyEclipse->Subscription Information...可查看
Activation Status: Product activated
显示如上表示激活成功!
完成激活后即可愉快使用MyEclipse啦,觉得有用就点赞吧~
安装完tomcat+Myeclipse后,实战一下把!