一台机器上部署不同版本JDK,两个Tomcat的解决方案

合集下载

tomcat常见的错误与解决方案小结

tomcat常见的错误与解决方案小结

tomcat常见的错误与解决⽅案⼩结⼀、tomcat启动时错误问题1:The JAVA_HOME environment variable is not defined This environment variable is needed to run this program;解决:没有在tomcat的配置⽂件.bash_profile中设置环境变量JAVA_HOME,具体设置⽅法为:加⼊如下⼏⾏:JAVA_HOME=/home/tomcat/j2sdk1.4.2_08(具体值要以实际的jdk安装路径为准)export JAVA_HOMECLASSPATH=/home/tomcat/j2sdk1.4.2_08/lib/tools.jar:/home/tomcat/j2sdk1.4.2_08/lib/dt.jarexport CLASSPATH问题2:Error occurred during initialization of VM Could not reserve enough space for object heap解决:在tomcat的bin⽬录下,catalina.sh⽂件的tomcat内存参数配置过⼤,超过机器可⽤内存总数造成,修改到适当的值即可,修改的参数为:JAVA_OPTS="-Xms50m -Xmx60m"问题3:tomcat启动时报某个⽬录没有权限,启动失败,或者不能执⾏某些jsp页解决:tomcat需要tomcat⽤户具有⼀些⽬录和⽂件的相应权限, 所有⽬录应该具有读写执⾏(浏览)的权限,jsp,class⽂件应该最少具有读权限, ⼀些⽂件需要写权限,下⾯是已知的需要读写权限⽂件的列表:$CATALINA_HOME/logs下所有⽂件$CATALINA_HOME/work下所有⽂件$CATALINA_HOME/publish/main/count.txt⽂件$CATALINA_HOME/publish/chatroom/resource下的所有.xml⽂件所有上传图⽚⽬录都需要写权限。

CentOS下安装配置JDK与Tomcat图解详细过程

CentOS下安装配置JDK与Tomcat图解详细过程

本文档由黄海整理于2011-06-23步骤1:卸载掉JDK1.4.2在安装之前可以先看下是否有自带的jdkjava -version用root用户登陆到系统,打开一个终端输入rpm -qa| grep gcj显示内容其中包含下面两行信息# java-1.4.2-gcj-compat-1.4.2.0-27jpp卸载rpm -e --nodeps java-1.4.2-gcj-compat-1.4.2.0-27jpp如果有依赖关系,不让卸载,就用 rpm -e --nodeps 卸载就行了此时jdk1.4已被卸了。

------------------------------------------------------------------------------------------------步骤2:下载JDK1.6 for linux/otn-pub/java/jdk/6u26-b03/jdk-6u26-linux-i586-rpm.bin2、上传此文件到LINUX主机/root下,并通过chmod +x jdk-6u26-linux-i586-rpm.bin命令使其获得可执行权限运行一下:./jdk-6u26-linux-i586-rpm.bin3.通过rpm -ivh jdk-6u26-linux-i586.rpm来进行安装4.安装完毕,JDK安装在/usr/java/目录下5.设置环境变量(写入/etc/profile中)vi /etc/profileexport JAVA_HOME=/usr/java/jdk1.6.0_26export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_H OME/jre/lib/rt.jarexport PATH=$PATH:$JAVA_HOME/bin检查一下是不是没问题了?source /etc/profile正常的话是啥也不出来的啊!!okay了键入java -version如果出现相关JDK版本信息,证明成功安装Tomcat前提是要配置好了jdk环境变量。

服务器上配置多个TOMCAT环境变量

服务器上配置多个TOMCAT环境变量
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html><head><title>");
out.println("This is my first Servlet");
里面)
然后在浏览器中输入http://localhost:8080/servlet/HelloWorld,于是Server众望所归的报错了:Error 404--Not Found
怎么回事呢?
Servlet必须使用C:\Tomcat\webapps\ROOT\WEB-INF这个目录下面的web.xml文件进行注册,
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="UTF-8"/>
注意黑体部分是修改的地方,修改之后就可以让TOMCAT支持中文链接了。
7.打开浏览器,输入http://localhost:8080/myapp/index.jsp 看到当前时间的话说明就成功了。
第四步:建立自己的Servlet:
写入你的第一个Servlet
import java.io.*;

CentOS下JDK和tomcat的安装

CentOS下JDK和tomcat的安装

CentOS下JDK和tomcat的安装配置1、下载地址:/technetwork/java/javase/downloads/java-se-jdk-7-downloa d-432154.html若安装的是32位系统则下载jdk-7u10-linux-i586.rpm;若安装的是64位系统则下载jdk-7u10-linux-x64.rpm;2、安装JDK用root登录,执行rpm -ivh jdk-7u10-linux-i586.rpm(64位系统则是:rpm -ivh jdk-7u10-linux-x64.rpm)操作完成后,默认安装路径应该是/usr/java/jdk1.7.0_103、配置JDKvi /etc/profile在profile文件下面追加写入下面信息:export JAVA_HOME=/usr/java/jdk1.7.0_10exportCLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/to ols.jarexport PATH=$PATH:$JAVA_HOME/bin保存退出,执行:source /etc/profile更新 alternatives,选择JDK版本执行:update-alternatives --install /usr/bin/java java /usr/java/jdk1.7.0_10/bin/java 60然后配置JDK,执行:update-alternatives --config javaThere are 2 programs which provide 'java'.Selection Command-----------------------------------------------* 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java+ 2 /usr/java/jdk1.7.0_10/bin/javaEnter to keep the current selection[+], or type selection number:2选择我们最新安装的/usr/java/jdk1.7.0_10/bin/java,然后回车。

一台服务器上面运行多个tomcat服务的设置方法

一台服务器上面运行多个tomcat服务的设置方法

项目软件使用了tomcat,在安装时自动注册为服务。

有一客户在安装时发现与另外一个软件的tomcat发生了冲突,两个软件都要使用,于是在网上查了一下资料,解决这个问题。

设置方法很简单,修改server.xml配置文件中的3个端口即可。

下面将简单总结一下如何在同一台服务器上部署多个tomcat服务。

1、下载tomcat zip版软件,分别解压到两个目录,如tomcat1和tomcat2;2、tomcat1的server.xml文件的端口设置保持默认不变;3、按照如下方法修改tomcat2的server.xml文件;∙修改8080端口。

将<Connector port="8080" maxThreads="150" minSpareThreads="25"maxSpareThreads="75" enableLookups="false" redirectPort="8443"acceptCount="100" debug="0" connectionTimeout="20000"disableUploadTimeout="true" />中的8080修改为与tomcat1中不同的端口(确保设置的端口未被使用),如9090;∙修改8005端口。

将<Server port="8005" shutdown="SHUTDOWN" debug="0">中俄8005端口修改为与tomcat1中不同的端口(确保设置的端口未被使用),如9005;∙修改8009端口。

将<Connector port="8009" enableLookups="false"redirectPort="8443" debug="0" protocol="AJP/1.3" />中的8009端口修改为与tomcat1中不同的端口(确保设置的端口未被使用),如9009;∙保存server.xml文件并关闭。

代码编译时JDK版本和运行时JDK版本不一致启动项目报错

代码编译时JDK版本和运行时JDK版本不一致启动项目报错

代码编译时JDK版本和运⾏时JDK版本不⼀致启动项⽬报错java编译:java编译就是.java⽂件变成.class⽂件的过程,这个过程⼀般在我们常⽤的编译器中进⾏,例如Ecliplse和IDEA等:下⾯以IDEA举例:执⾏上述编译使⽤的JDK版本就是我们不同编译器所设置的java版本:java运⾏:java运⾏就是我们编译得到的字节码⽂件(就是.class⽂件)在安装了Java运⾏环境(JVM)的计算机上运⾏,此时使⽤的的JDK版本就是我们配置的JAVA_HOME对应的java版本。

我们可以通过在命令⾏执⾏:java -version来查看当前计算机上的java版本编译时JDK版本和运⾏时JDK版本不⼀致:如果上述两种JDK版本不⼀致,很容易在运⾏项⽬时产⽣报错,就像我就遇到了下⾯的报错:我的解决办法就是将两者JDK版本调节为同⼀个版本就OK了五⽉22, 20197:05:35上午 org.apache.tomcat.util.modeler.BaseModelMBean invoke严重: Exception invoking method createStandardContextjavax.management.RuntimeOperationsException: Exception invoking method manageAppat org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:305)at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:598)at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:547)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at ng.reflect.Method.invoke(Method.java:498)at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)at java.security.AccessController.doPrivileged(Native Method)at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)[2019-05-2207:05:35,048] Artifact test1:war exploded: Error during artifact deployment. See server log for details.at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at ng.reflect.Method.invoke(Method.java:498)at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:361)at sun.rmi.transport.Transport$1.run(Transport.java:200)at sun.rmi.transport.Transport$1.run(Transport.java:197)at java.security.AccessController.doPrivileged(Native Method)at sun.rmi.transport.Transport.serviceCall(Transport.java:196)at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)at sun.rmi.transport.tcp.TCPTransport$mbda$run$0(TCPTransport.java:683)at java.security.AccessController.doPrivileged(Native Method)at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at ng.Thread.run(Thread.java:748)Caused by: org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 18at org.apache.tomcat.util.bcel.classfile.Constant.readConstant(Constant.java:131)at org.apache.tomcat.util.bcel.classfile.ConstantPool.<init>(ConstantPool.java:60)at org.apache.tomcat.util.bcel.classfile.ClassParser.readConstantPool(ClassParser.java:209)at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:119)at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1909)at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1798)at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1757)at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1743)at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1247)at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:874)at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:317)at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5031)at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1390)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at ng.reflect.Method.invoke(Method.java:498)at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)... 35 more五⽉22, 20197:05:44上午 org.apache.catalina.startup.HostConfig deployDirectory信息: Deploying web application directory manager补充:在⼀个计算机上编译得到的字节码⽂件(就是.class⽂件),可以复制到任何⼀个安装了Java运⾏环境的计算机上直接运⾏。

一台服务器上同时运行两个Tomcat服务

一台服务器上同时运行两个Tomcat服务

一台服务器上同时运行两个Tomcat服务如果不加任何修改,在一台服务器上同时运行两个Tomcat服务显然会发生端口冲突。

假设现在已经按照正常的方式安装配置好了第一个Tomcat,第二个如何设置呢?以下是使用Tomcat5.5解压版本所做的实验。

解决办法:1.下载tomcat的压缩包(不是安装的那种,直接解压缩就能用的)下载好的文件名是:apache-tomcat-5.5.23.zip2.解压缩。

我解压缩到了C:\分别是C:\apache-tomcat-5.5.23-1,C:\apache-tomcat-5.5.23-23. 新建一个环境变量CATALINA_HOME2,路径为d:\TomcatServer2;(只针对Windows版,Linux版不用)4. 编辑Tomcat/bin/startup.bat和catalina.bat,把CATALINA_HOME全部替换成CATALINA_HOME2;(只针对Windows版,Linux版不用)5. 修改任意一个的配置文件,比如apache-tomcat-5.5.23-1,C:\apache-tomcat-5.5.23-1\conf\server.xml用记事本什么的打开修改3个地方第一:<Server port="9005" shutdown="SHUTDOWN"> ----原来是8005第二<Connector port="9080" maxHttpHeaderSize="8192" ----原来是8080并修改默认编码为GBK或UTF-8(以支持中文链接),此处为可选设置。

示例:<Connector port="9080" protocol="HTTP/1.1"connectionTimeout="20000"r edirectPort="9443" URIEncoding=”UTF-8”/>第三<Connector port="9009" enableLookups="false" redirectPort="9443" protocol="AJP/1.3" /> ---原来是8009与8443(如果是安装版的tomcat 就不需要配置环境变量)6. 开启tomcat(只针对Windows版,Linux版用相应的启动与关闭命令即可,不用设置如下变量)开启第一个tomcat运行-cmd设置两个环境变量:JAVA_HOME(指向jdk)和CATALINA_HOME(指向Tomcat目录)在命令行打:set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_11set CATALINA_HOME=C:\apache-tomcat-5.5.23-1运行tomcat,命令:C:\apache-tomcat-5.5.23-1\bin\startup.bat关闭用C:\apache-tomcat-5.5.23-1\bin\shutdown.bat开启第二个tomcat运行-cmd(打开了另一个命令窗口)还是要设置两个环境变量:JAVA_HOME(指向jdk)和CATALINA_HOME(指向Tomcat目录)在命令行打:set JAVA_HOME=C:\Program Files\Java\jdk1.5.0_11set CATALINA_HOME=C:\apache-tomcat-5.5.23-2 (注意tomcat目录我指向了另一个)运行tomcat了,命令:C:\apache-tomcat-5.5.23-2\bin\startup.bat 注意也是另一个--5.5.23-2)关闭可以用C:\apache-tomcat-5.5.23-2\bin\shutdown.bat(注意也是另一个--5.5.23-2)注意:但是有一个小小的问题是(据说是5.5的bug):子目录不能有与应用名相同的情况。

一台机器上跑2个不同的tomcat

一台机器上跑2个不同的tomcat

改为
<Serverport="XXXX"shutdown="SHUTDOWN">
2.2.2 配置Engine
把原来的配置注释掉,把下面一句去掉注释。并标明jvmRoute="jvm1".jvmRoute对应apache配置文件配置的属性route
<Enginename="Standalone"defaultHost="localhost"jvmRoute="jvm1">
我们需要在一台机器上跑2个不同的tomcat,需要修改不同的tomcat的关闭口,避免出现端口被占用的情况。其中一个用默认值,不修改。另外一个需要修改。在tomcat\conf下的server.xml中找到server,将:
<Serverport="8005"shutdown="SHUTDOWN">
2.2.3 配置Connector
原来的默认配置。
<!--DefineanAJP1.3Connectoronport8009-->
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
这里是apache和tomcat链接的关键,前台apache就是通过AJP协议与tomcat进行通信的,以完成负载均衡的作用。也可以用HTTP协议。大家注意它们是如何连接通信的,上面的红色部分(port="8009")就是连接的接口了。
#与tomcat6.01对应,route与<Engine jvmRoute="jvm2">对应。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一台机器上部署不同版本JDK,两个Tomcat的解决方案本方法适用于案件系统已部署好,使用JDK1.4,且办公系统必须与案件系统部署在同一台机器上的情况。

1.安装JDK1.5,记住安装目录,如C:\Program Files\Java\jdk1.5.0_11
2.新安装一个tomcat5.0到与原tomcat5.0不同的目录,如原来tomcat安装在c
盘,则新安装tomcat5.0到D盘。

3.设置端口号,默认为8080。

4.JDK的目录使用默认目录:
5.安装成功后修改tomcat设置:找到D:\Tomcat 5.0\bin\setclasspath.bat文件,点
鼠标右键-编辑,打开文件后,在文件的最前面加入如下内容set
JA V A_HOME=C:\Program Files\Java\jdk1.5.0_11,保存。

6.找到D:\Tomcat 5.0\conf\ server.xml文件,点右键—编辑,打开文件,
找到<Server port="8005",将8005改为8010;
找到<Connector port="8080" ,将8080改为9000;
找到<Connector port="8009" ,将8009改为8011;保存。

注:这三个端口都不能与原tomcat使用的端口相同,如果相同则改为另外的端口。

7.将原tomcat5.0/webapps下的goa目录剪切到D:/tomcat/webapps下。

8.用D:/ Tomcat 5.0/bin/ startup.bat启动新安装的tomcat5.0。

9.使用http://127.0.0.1:9000/goa/index.jsp访问办公系统,在系统管理--网站设置
中修改站点IP为应用服务器ip为10.163.81.8,使用http://127.0.0.1:9000/goa 访问网站。

相关文档
最新文档