Tomcat的重装与问题解决方法。

转自:http://blog.youkuaiyun.com/oldinaction/article/details/39754635


这篇文章是别人讲述的我来引用的,正巧遇到了这种问题,但自己解决了,只是在解决后想知道具体的是什么原因导致了我重装tomcat的异常,发现了这个帖子,博主具体的方法没有尝试,但觉得博主的解决方法很好,故以此作为引荐。

虽然帖子比较老了,tomcat版本也较老,但原理应该一样。

一、Tomcat的下载:

下载地址:http://tomcat.apache.org/ 下载Tomcat6.0(在左侧的Download下,考虑到稳定性现在企业大部分还在用Tomcat6.0

(1)这两种直接解压就可以使用,一般下载这一种(解压到你想放的文件夹下,可以直接更改解压后的文件名,文件夹命名最好是英文。)

32-bit Windows zip (pgp, md5)

64-bit Windows zip (pgp, md5)

(2)这个需要安装才能使用,适合纯新手

32-bit/64-bit Windows Service Installer (pgp, md5)


二、Tomcat在MyEclipse中集成:

==> Window-preferences-MyEclipse-Servers-Tomcat-Tomcat 6.x-点击右侧的Browse,选择你的Tomcat安装目录(我的是D:\Java\tomcat6),勾选Enable,在点击Apply

==> 点击Tomcat 6.x下的JDK,在右侧jdk name下点击下拉箭头,选择你安装的jdk版本

==> 在Optional java JVM arguments下的输入框填入 -Xms128m -Xmx512m -XX:MaxPermSize=256m ,在点击Apply

==> 点击Tomcat 6.x下的Launch,勾选DeBug mode,在点击Apply,点击OK即可


三、Tomcat常见问题与解决办法

1、手动启动tomcat时cmd窗口一闪而过解决方法。

问题现象:在实际开发中一般都是eclipse+tomcat(也许还会用到tomcat的插件),我们只需要在eclipse中单击servers上的按钮就可以成功启动tomcat了,

但是如果想在tomcat的安装目录下 双击startup.bat启动时却一闪而过了。这是为什么呢(tomcat启动失败),马上就带大家看看具体的原因。

下面我先跟大家确认一下问题出现的前提条件(本机版本java:1.6.20,tomcat:6.0.32):

1)在eclipse里面启动tomcat时都是正常的。(效果见下图)

2)在系统中配置了各种环境变量如下:

JAVA_HOME:H:\DevelopTools\Java\jdk1.6.0_20

CATALINA_BASE:H:\DevelopTools\apache-tomcat-6.0.32

CATALINA_HOME:H:\DevelopTools\apache-tomcat-6.0.32

CLASSPATH:.;%JAVA_HOME%;%JAVA_HOME%\jre\lib;

PATH:.;%JAVA_HOME%\bin;%CATALINA_HOME%\bin;


来分析一下:进入tomcat的安装目录(即解压后放置的地方),看到圈出红色的3个bat文件,一般通过startup.bat启动tomcat时流程是:startup->catalina->setclasspath->catalina,如果这3个bat文件里面有一个出现错误的话就是启动失败。为了找到一闪而过的原因得需要我们来看看这3个文件里面到底是什么了


先记事本打开startup.bat,找到最后一句话::end,我们知道end表示结束的意思,:end是一个标记,我们在后面加上一句pause(暂停等待的意思)


再次执行startup.bat,就会看到图4,当我们按任意的键时cmd窗口又是一闪而过了。但是这已经确定了我们的环境变量都是正确的。


为了更加详细的看到信息,我们再来更改一句:找到call "%EXECUTABLE%" start %CMD_LINE_ARGS% 把里面的start替换为run。



再来看看cmd窗口里面输出错误信息了:

error occurred during initialization of vm

could not reserve enough space for object heap

could not create the java virtual machine

我们大体可以理解为:因为程序请求不到足够的内存就启动不了vm,导致程序退出。 那么我们可以来解决这个问题了:申请足够的内存就可以了

如下操作:在catalina.bat中 找到Execute The Requested Command下面的


set JAVA_OPTS把这一句替换为:set JAVA_OPTS=%JAVA_OPTS% -server -Xms800m -Xmx800m -XX:MaxNewSize=256m 再次启动startup.bat 会看到


已经启动成功了(记得把之前修改的内容run、pause还原回去)。

到这里,貌似问题已经解决了,如果遇到其他的问题该怎么解决呢(因为其他的问题也会导致cmd窗口一闪而过)?

我先跟大家简单说一下:

参考文档:

startup.bat主要负责找到catalina.bat文件,并执行catalina.bat。

catalina.bat是tomcat所有脚本中最重要的脚本,完成几乎所有的tomcat操作。如启动,关闭等等,都是由catalina.bat脚本来完成的。

setclasspath.bat是用来设置基础的环境变量的(如JAVA_HOME等)


2、通过startup.bat启动时报错:

严重: Error initializing endpoint

java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??

at org.apache.tomcat.util.net.AprEndpoint.init(AprEndpoint.java:647)

at org.apache.coyote.http11.Http11AprProtocol.init(Http11AprProtocol.java:107)

at org.apache.catalina.connector.Connector.initialize(Connector.java:1014)

at org.apache.catalina.core.StandardService.initialize(StandardService.java:680)

at org.apache.catalina.core.StandardServer.initialize(StandardServer.java:795)

at org.apache.catalina.startup.Catalina.load(Catalina.java:524)

at org.apache.catalina.startup.Catalina.load(Catalina.java:548)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:597)

at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)

at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

总结了一下,大致有以下几种解决方案:

1.端口号被占用,更改tomcat端口号;

2.把Tmcat服务属性更改为手动,重新加载Tomcat;

3.重启Myeclipse;

4.打开任务管理器,找到javaw.exe,把这个进程杀掉;

5.开始-运行-输入cmd-netstat   -ano-回车-查到8888端口的PID

通过Ctrl+Alt+Delete快捷键打开Windows任务管理器-查看-选择列-勾选PID(进程标识符)(P)-找到8888端口的PID-结束进程

或开始-运行-输入cmd-netstat -ano|find "8888"-tasklist|find "PID "-askkill /pid PID

PS:我当时是现在MyEclipse中启动了一次Tomcat,然后通过startup.bat启动时报了上面的错误。但在任务管理器中没有找到上面的进程,然后我重启了一次计算机就可以运行startup.bat


3、打开MyEclipse 的Tomcat的时候突然出现 Error starting Tomcat 6.x server 错误。

修改方案:运行cmd,netsh winsock reset,这个是重置winsock,可能是那个软件篡改了winsock

但是在修改 cmd的过程中又总是出现 “请求的操作需要提升(作为管理员运行)。”,接着就是具体步骤:在C:\Windows\System32下找到cmd.exe程序,右击“以管理员身份运行” 这样再输入上面的修改命令即可;


<think>好的,我现在需要帮助用户解决如何在Linux系统上重新安装Tomcat问题。用户希望有一个逐步的指南,所以我需要详细分解每个步骤,同时确保内容准确可靠。 首先,我得确定用户当前的情况。重新安装Tomcat可能意味着用户之前已经安装过,但遇到了问题需要重新安装,或者想升级到新版本。不管是哪种情况,步骤大致包括卸载旧版本、下载新版本、安装配置、验证安装等。 第一步,卸载现有Tomcat。用户可能已经安装过Tomcat,所以需要彻底卸载。通常Tomcat的安装位置是/opt/tomcat,但不同版本或安装方式可能路径不同。需要检查服务状态,停止服务,删除相关文件和目录,以及可能存在的systemd服务文件。这部分需要具体命令,比如systemctl stop tomcat,然后删除目录和service文件。 接下来,下载新版本的Tomcat。用户需要访问Apache官网获取最新版本链接,使用wget下载。这里要注意版本号可能会变,所以需要确认最新的稳定版本,例如9.0.75。然后解压到/opt目录,可能需要使用tar命令,并设置正确的权限,比如创建tomcat用户和组,修改目录所有权,确保安全性。 然后是配置环境变量。通常需要设置CATALINA_HOME,这有助于其他应用或脚本找到Tomcat的安装路径。编辑/etc/environment文件,添加变量,然后source一下让配置生效。 接下来是创建systemd服务单元文件,这样可以通过systemctl管理Tomcat服务。需要编写一个.service文件,指定运行用户、环境变量、启动命令等。记得重新加载systemd配置,并启用开机启动。 验证安装部分,启动服务后检查状态,查看日志是否有错误,以及通过curl或浏览器访问默认页面确认服务正常运行。如果有防火墙,需要开放8080端口,这部分可能需要用到ufw或iptables命令。 在注意事项里,可能需要提到备份原有配置和数据,如果用户想保留之前的配置,应该在卸载前备份conf、webapps等目录,安装后再恢复。另外,版本兼容性和依赖项检查也是重要的,比如Java版本是否符合要求。 现在需要检查是否有遗漏的步骤,或者是否有需要根据用户引用内容调整的地方。查看用户提供的引用,引用[1]提到了Debian打包的问题,引用[2]是关于路径包含,引用[3]是环境变量设置。虽然这些引用可能和Tomcat安装无直接关联,但可能在配置环境变量或路径时可以参考,例如在package.json中添加包含路径,但这里可能不太相关。不过,在设置CATALINA_HOME时,确保环境变量正确应用,类似于引用[3]中的方法。 另外,用户可能需要了解如何配置应用路径,比如部署WAR文件到webapps目录,或者调整server.xml配置,但用户的问题集中在重新安装步骤,这些高级配置可能属于后续问题。因此,回答应专注于安装过程本身。 最后,生成相关问题,考虑用户可能的后续疑问,比如配置虚拟主机、优化性能、设置SSL证书,或者处理常见错误,如端口冲突、权限问题等。这样能帮助用户进一步解决问题。</think>### 分步指南:Linux系统重新安装Tomcat #### 1. 卸载旧版本Tomcat **步骤说明:** - **停止Tomcat服务** 若旧版本以服务形式运行,先终止服务: ```bash sudo systemctl stop tomcat ``` - **删除安装目录** 默认安装路径通常为 `/opt/tomcat` 或 `/usr/local/tomcat`: ```bash sudo rm -rf /opt/tomcat ``` - **移除Systemd服务文件** 删除服务定义文件以避免冲突: ```bash sudo rm /etc/systemd/system/tomcat.service sudo systemctl daemon-reload ``` #### 2. 下载并安装新版本Tomcat **步骤说明:** - **安装依赖项(Java JDK)** Tomcat依赖Java环境,需先安装JDK: ```bash sudo apt update sudo apt install default-jdk ``` - **下载Tomcat二进制包** 访问[Apache Tomcat官网](https://tomcat.apache.org/)获取最新版本链接,例如Tomcat 10.0.27: ```bash wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.27/bin/apache-tomcat-10.0.27.tar.gz ``` - **解压并移动至安装目录** 解压文件并重命名目录为 `tomcat`: ```bash tar -xzvf apache-tomcat-10.0.27.tar.gz sudo mv apache-tomcat-10.0.27 /opt/tomcat ``` - **设置用户权限** 创建专用用户并分配目录权限: ```bash sudo useradd -r -s /bin/false tomcat sudo chown -R tomcat:tomcat /opt/tomcat sudo chmod -R 755 /opt/tomcat ``` #### 3. 配置环境变量 **步骤说明:** - **设置 `CATALINA_HOME`** 编辑 `/etc/environment` 文件,添加: ```bash CATALINA_HOME="/opt/tomcat" ``` 保存后执行: ```bash source /etc/environment ``` #### 4. 创建Systemd服务 **步骤说明:** - **编写服务文件** 创建 `/etc/systemd/system/tomcat.service`,内容如下: ```ini [Unit] Description=Apache Tomcat After=network.target [Service] User=tomcat Group=tomcat Environment="CATALINA_HOME=/opt/tomcat" ExecStart=/opt/tomcat/bin/catalina.sh run Restart=on-failure [Install] WantedBy=multi-user.target ``` - **启用并启动服务** 重新加载配置并启动: ```bash sudo systemctl daemon-reload sudo systemctl enable tomcat sudo systemctl start tomcat ``` #### 5. 验证安装 **步骤说明:** - **检查服务状态** ```bash sudo systemctl status tomcat ``` - **查看日志** 确认无报错信息: ```bash tail -f /opt/tomcat/logs/catalina.out ``` - **访问默认页面** 通过浏览器或命令行验证: ```bash curl http://localhost:8080 ``` 若返回Tomcat欢迎页面,则安装成功。 #### 6. 防火墙配置(可选) **步骤说明:** - **开放8080端口** ```bash sudo ufw allow 8080 ``` ### 注意事项 1. **备份数据** 若需保留旧版配置(如 `conf/server.xml`、`webapps/` 下的应用),卸载前复制至安全位置。 2. **版本兼容性** 确保Tomcat版本Java版本匹配(例如Tomcat 10需JDK 11+)[^1]。 3. **依赖冲突** 若使用其他包管理工具(如`apt`安装的Tomcat),需彻底清除残留文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值