`
qieyi28
  • 浏览: 157557 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

windows 服务器 添加多个tomcat到服务中

阅读更多

概念区分别混淆

首先需要声明,apache和TOMCAT的关系 简单的理解,apache是静态服务器容器,tomcat是java环境服务容器。

 

Tomcat启动分析

打开下载的tomcat的bin目录

用文本编辑工具打开用于启动Tomcat的批处理文件startup.bat,仔细阅读。在这个文件中,首先判断CATALINA_HOME环境变量是否为空,如果为空,就将当前目录设为CATALINA_HOME的值。接着判断当前目录下是否存在bin\catalina.bat,如果文件不存在,将当前目录的父目录设为CATALINA_HOME的值。根据笔者机器上Tomcat安装目录的层次结构,最后CATALINA_HOME的值被设为Tomcat的安装目录。如果环境变量CATALINA_HOME已经存在,则通过这个环境变量调用bin目录下的“catalina.bat start”命令。通过这段分析,我们了解到两个信息,一是Tomcat启动时,需要查找CATALINA_HOME这个环境变量,如果在Tomcat的bin目录下调用startup.bat,Tomcat会自动并正确设置CATALINA_HOME;二是执行startup.bat命令,实际上执行的是“catalina.bat start”命令。

 

如果我们不是在Tomcat的bin目录作为当前目录时调用startup.bat,就会出现如下图所示的错误信息(在bin目录的父目录下调用除外)。

 

如果要想在任意目录下都能启动Tomcat,就需要设置CATALINA_HOME环境变量,你可以将CATALINA_HOME添加到Windows XP系统的环境变量中,其值就是Tomcat的安装目录。在笔者的机器上,Tomcat的安装目录是C:\apache\tomcat1。添加CATALINA_HOME环境变量的过程和前述添加JAVA_HOME环境变量的过程是一样的。如果你不想在系统的环境变量中添加,也可以直接在startup.bat文件中进行设置。下面是在startup.bat文件中设置CATALINA_HOME后的文件片段:

 

rem Unless required by applicable law or agreed to in writing, software

rem distributed under the License is distributed on an "AS IS" BASIS,

rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

rem See the License for the specific language governing permissions and

rem limitations under the License.

rem ---------------------------------------------------------------------------

rem Start script for the CATALINA Server

rem ---------------------------------------------------------------------------

setlocal

 

set

JAVA_HOME=C:\Program Files\Java\jdk1.7.0_51

set

CATALINA_HOME=C:\apache\tomcat1

 

rem Guess CATALINA_HOME if not defined

set "CURRENT_DIR=%cd%"

if not "%CATALINA_HOME%" == "" goto gotHome

set "CATALINA_HOME=%CURRENT_DIR%"

if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome

cd ..

set "CATALINA_HOME=%cd%"

cd "%CURRENT_DIR%"

:gotHome

if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome

echo The CATALINA_HOME environment variable is not defined correctly

echo This environment variable is needed to run this program

goto end

:okHome

 

注意以粗体显示的这句代码的作用就是设置CATALINA_HOME环境变量,在它的下面是判断CATALINA_HOME是否为空的语句。如果找不准位置,干脆将设置CATALINA_HOME环境变量的这句代码放到文件的第一行。JAVA_HOME环境变量也可以采用同样的方式进行设置。不过,如果要在其他目录下利用shutdown.bat来关闭Tomcat服务器,则需要在shutdown.bat文件中设置CATALINA_HOME和JAVA_HOME这两个环境变量,设置变量的位置和startup.bat文件一样,都是在判断CATALINA_HOME是否为空之前。当然,为了一劳永逸,避免重装Tomcat后还要进行设置(需要是同一版本的Tomcat安装在同一位置),我们最好还是将CATALINA_HOME和JAVA_HOME这两个环境变量添加到Windows XP系统的环境变量中。

有的读者可能会对Tomcat安装目录的环境变量的名字是CATALINA_HOME而感到奇怪,按照其他环境变量的设置来看,JAVA_HOME表示JDK的安装目录,那么应该用TOMCAT_HOME来表示Tomcat的安装目录,可为什么要使用CATALINA_HOME呢?实际上,在Tomcat 4以前,用的就是TOMCAT_HOME来表示Tomcat的安装目录,在Tomcat 4以后,采用了新的Servlet容器Catalina,所以环境变量的名字也改为了CATALINA_HOME。

在Windows系统下环境变量的名字是与大小写无关的,也就是说,JAVA_HOME和java_home是一样的。

了解了startup.bat文件以后,我们再来看看真正负责启动Tomcat服务器的catalina.bat文件。通过分析catalina.bat文件,我们发现它还调用了一个文件setclasspath.bat。在setclasspath.bat文件中,它检查JAVA_HOME环境变量是否存在,并通过JAVA_HOME环境变量,找到java.exe,用于启动Tomcat。在这个文件中,还设置了其他的一些变量,代表调用Java的标准命令,有兴趣的读者可以自行分析一下这个文件。在执行完setclasspath.bat之后,catalina.bat剩下的部分就开始了Tomcat服务器的启动进程。

 

 

安装多TOMCAT服务操作步骤

1.下载Zip版Tomcat;

      选择:apache-tomcat-7.0.70 Windows zip(pgp,md5)下载解压文件到指定目录,如:D:/ProgramFiles/Tomcat6

进入D:/ProgramFiles/Tomcat6/bin目录:双击运行:startup.bat

待启动完成后,在浏览器中输入:http://localhost:8080

     如果出来tomcat首页,表示安装成功

    先关闭刚才启动的Tomcat,可以在刚才打开的面板中按Ctrl + C 结束运行

 

2修改startup.bat   在第一行前加入如下内容:

SET
JAVA_HOME=D:\ProgramFiles\tool\Java\jdk6

SET
CATALINA_HOME=D:\ProgramFiles\Tomcat6

JAVA_HOME就是环境变量中配置的内容.CATALINA_HOME就是Tomcat的目录

 

3.修改shutdown.bat

    在第一行前加入如下内容:

SET JAVA_HOME=D:\ProgramFiles\tool\Java\jdk6

SET
CATALINA_HOME=D:\ProgramFiles\Tomcat6

 

4.修改service.bat

  在第一行前加:

set
CATALINA_HOME=D:\ProgramFiles\Tocmat6

 

SET JAVA_HOME=D:\ProgramFiles\tool\Java\jdk6

 

找到配置文件中修改默认服务名

set SERVICE_NAME=【你想修改的服务名】

 

set DISPLAYNAME= Tomcat 7.0 %SERVICE_NAME%

 

第一行自不必说,第二行是服务的名字,在命令行中通过该名字进行服务的控制(启动/关闭)

第三行是服务的显示名称,即在服务管理器中显示的名称.

 

5.添加到服务

在DOS界面下,cd进入Tomcat解压目录的bin目录,

如果已经有tomcat6服务,则先输入命令:

service remove tomcat6

如果没有tomcat6服务 则直接输入:service.bat install  或 service.bat install tomcat6

如果安装成功,会提示:The service 'Tomcat6(或者你修改一后的SERVICE_NAME)' has
been installed  到你的启动服务里将会看到启动apache tomcat7 tomcat6这个服务。

 

注意:如上步骤可添加第多个tomcat服务,需注意的是tomcat配置文件端口不要和之前配置的tomcat端口产生冲突。

那么请到conf 目录下的 server.xml 配置文件,把那些端口全都修改了,比如 8080 改成 9080 或者你改成 8090,只要跟第一个其他端口不冲突就行,其他的还有8005 改成9005,8009 改成9009,修改完以后,保存关闭该文件,这样就可以在服务里启动多个tomcat了。

 

如果端口被占用,使用DOS命令查下端口号。以下为网上整理

1.输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口。

2.查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720

3.继续输入tasklist|findstr "2720",回车,查看是哪个进程或者程序占用了2720端口,结果是:svchost.exe

4.结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im Tencentdl.exe。

 

以上方法我在自己电脑上试验,一切OK ,在服务器上试验,看到日志里报错,感觉好一阵郁闷,一时间也没有办法,错误日志如下:

[2016-12-14 22:06:23] [info]  [ 1936] Commons Daemon procrun (1.0.15.0 64-bit) started

[2016-12-14 22:06:24] [info]  [ 1936] Running 'Ipsearch' Service...

[2016-12-14 22:06:24] [info]  [ 1532] Starting service...

[2016-12-14 22:06:24] [error] [ 1532] %1 不是有效的 Win32 应用程序。

[2016-12-14 22:06:24] [error] [ 1532] Failed creating java C:\Java\jdk1.8\jre\bin\server\jvm.dll

[2016-12-14 22:06:24] [error] [ 1532] %1 不是有效的 Win32 应用程序。

[2016-12-14 22:06:24] [error] [ 1532] ServiceStart returned 1

[2016-12-14 22:06:24] [error] [ 1532] %1 不是有效的 Win32 应用程序。

[2016-12-14 22:06:25] [info]  [ 1936] Run service finished.

[2016-12-14 22:06:25] [info]  [ 1936] Commons Daemon procrun finished

 

怎么办呢,只能找度娘,各种答案啊,有怀疑是JDK的问题的,于是我把JDK换成了1.7版本。

依然如此,没有效果。有的说是把jdk\bin目录下的msvcr71.dll复制到tomcat安装目录的\bin下,我也试了没结果,冷静一下,想想这应该是一个很简单的配置,不应该如此麻烦。既然,JDK没有问题,端口也没有问题,我只能怀疑,安装到服务的方法不对了。于是我在startup.bat和shutdown.bat 只加了

SET "CATALINA_HOME=C:\Tomcat\tomcatIpsearch"   注意这里有引号。(有引号 没引号到底有没有关系我就没验证了),set JAVA_HOME 我删除掉了,因为环境变量里已经配置了。

service.bat文件里不添加任何内容,保持TOMCAT 初始的样子。

 

这里注册服务我缓存.bat文件执行,在桌面上添加一个

install.bat文件 文件里写上下面三行内容

set JAVA_HOME=C:\Program Files\java\jdk1.7.0_51
set CATALINA_HOME=C:\Tomcat\tomcatIpsearch
C:\Tomcat\tomcatIpsearch\bin\service.bat install web-Ipsearche

 在桌面上双击这个配置,执行完毕。

再打开服务看到有tomcat 7 web-Ipsearche这个服务。点击启动,竟然成功了。以此方法类推安装多个不同应用名的tomcat服务。

 

 

 

 

分享到:
评论

相关推荐

    Windows nginx +多个 tomcat 配置

    在 nginx 的配置文件中,需要添加 upstream 块,指定多个 Tomcat 服务器,并将请求分配到这些服务器上。 4. 配置 Tomcat 在 Tomcat 的配置文件中,需要修改 server.xml 文件,指定端口和其他配置。 nginx 配置...

    同一服务器部署多个Tomcat方法.docx

    本文将详细介绍如何在同一台Windows服务器上部署多个Tomcat实例的具体步骤及注意事项。 #### 创建多个Tomcat目录 首先,需要在磁盘上为每个Tomcat实例创建一个独立的目录。例如,在`D:`盘根目录下创建三个文件夹,...

    使用Tomcat或Nginx搭建视频服务器

    标题中提到的“使用Tomcat或Nginx搭建视频服务器”涉及到两个Web服务器软件:Apache Tomcat和Nginx。Apache Tomcat是一个开源的Web服务器和Servlet容器,主要用来运行Java Servlet和JavaServer Pages (JSP)。而Nginx...

    windows下64位的tomcat的三个版本6、7、8

    **Windows环境下64位Tomcat的三个版本:6、7、8详解** Tomcat作为一款广泛应用的开源Web服务器,以其轻量级、高效且易于管理的特性,深受开发者喜爱。在Windows操作系统上,特别是64位系统,选择合适的Tomcat版本至...

    Apache与多个Tomcat服务器集成时的负载平衡.txt

    ### Apache与多个Tomcat服务器集成时的负载平衡详解 在现代Web应用开发中,为了提高网站的性能和可用性,采用多台服务器进行负载均衡已成为一种常见策略。Apache作为一款功能强大的Web服务器软件,能够有效地与多个...

    tomcat服务器搭建详解

    在Tomcat中部署应用程序,通常将WAR文件或整个应用目录放入webapps目录下,Tomcat会自动解压并启动应用。此外,可以通过修改server.xml配置文件,对服务进行更高级的定制,如添加虚拟主机、调整连接器参数等。 总之...

    配置Eclipse tomcat服务器

    - 右键点击创建的服务器实例,在`Servers`视图中选择`Add and Remove...`,将你的Web项目添加到服务器上。 6. **启动和调试服务器** - 在`Servers`视图中,双击你的服务器实例,或者右键选择`Start`来启动服务器...

    apache-tomcat-7.0.82-windows-x64.zip 【Tomcat服务器,Tomcat7 Windows 64位版】

    - **Path**:将 `%CATALINA_HOME%\bin` 添加到系统的PATH环境变量中,以便于命令行启动和停止Tomcat。 3. **启动和停止**:通过运行 `%CATALINA_HOME%\bin\startup.bat` 和 `%CATALINA_HOME%\bin\shutdown.bat` 来...

    nginx-配置多个tomcat

    本示例中的"nginx-配置多个tomcat"就是这样一个应用场景,它涉及到Nginx和Tomcat两个核心组件,以及如何通过Nginx作为反向代理来管理多个Tomcat实例。 **Nginx** 是一款高性能的HTTP和反向代理服务器,以其轻量级、...

    Tomcat服务器

    4. **启动与关闭**:通过执行`bin/startup.sh`(Unix/Linux)或`bin/startup.bat`(Windows)启动Tomcat,使用`shutdown.sh`或`shutdown.bat`停止服务。 **三、Tomcat的管理** 1. **管理界面**:默认情况下,...

    tomcat服务器

    在Tomcat中,"about"页面通常是由服务器提供的一个内置页面,可以显示服务器的版本、配置和运行状态等信息。此外,操作Tomcat涉及的方面包括启动、停止服务器,配置端口,设置环境变量,管理用户权限,以及处理日志...

    tomcat非安装方式,添加windows服务启动方式

    标题“Tomcat非安装方式,添加Windows服务启动方式”指的是在Windows操作系统中,不通过传统的安装程序,而是采用手动配置的方式将Tomcat设置为系统服务,以便能够像其他Windows服务那样启动、停止和管理。...

    andorid人员文件上传服务器的搭建(tomcat中)

    在Android开发过程中,为了进行应用的测试和调试,有时我们需要搭建一个本地服务器来处理客户端(Android设备)的数据交互,例如文件上传。本教程将详细讲解如何在Tomcat服务器上搭建一个支持Android文件上传的...

    tomcat-8.5.73-windows 免安装版本

    描述中提到的“免安装版本”意味着这个Tomcat版本不需要通过传统的安装程序来设置,而是可以直接解压到任何目录并运行,这对于开发和测试环境特别方便,因为不需要管理员权限或复杂的配置步骤即可启动服务。...

    怎样在同一系统中启动多个tomcat

    在IT行业中,尤其是Web服务器管理方面,有时需要在同一台服务器上运行多个Tomcat实例,以隔离不同应用或防止单一应用故障影响其他服务。以下是如何在Windows和Linux系统中配置和启动多个Tomcat实例的详细步骤。 ###...

    windows版本tomcat9

    在Windows上配置和管理Tomcat 9涉及多个步骤,包括设置环境变量、编辑`server.xml`配置文件以定制服务器行为、配置防火墙规则以允许外部访问,以及使用控制脚本(如`startup.bat`和`shutdown.bat`)来启动和停止...

    Windows 2008 NLB Apache2.2 Tomcat 5集群安装配置指导手册

    8. 检验Apache+Tomcat集群是否生效:配置完成后,需要验证Apache服务器是否能够正确地将请求转发到Tomcat集群,并由集群中的服务器进行处理。 9. Windows 2008 R2 NLB集群创建:安装并配置好NLB后,需要在Windows ...

    Java应用服务器 Tomcat

    5. **版本选择**:Tomcat有多个版本,例如给定的`apache-tomcat-7.0.30`是Tomcat 7的一个版本,不同版本支持的功能和性能有所差异,开发者应根据项目需求选择合适的版本。 6. **与其他应用服务器比较**:虽然Tomcat...

    Tomcat6 服务 安装

    ### Tomcat6 服务安装与自启动配置 ...此外,对于多实例部署的情况,只需要简单修改服务名即可轻松实现多个Tomcat服务的同时启动。希望这些方法能够帮助开发者们更好地管理和维护他们的Java Web应用。

Global site tag (gtag.js) - Google Analytics