分类目录归档:tomcat

如何解决java.lang.OutOfMemoryError

PermGen space是指内存的永久保存区域OutOfMemoryError: PermGen space从表面上看就是内存益出,解决方法也一定是加大内存。主要原因是class文件太多或者lib下的jar文件太多

linux系统:

在tomcat的bin目录下找到catalina.sh

找到echo "Using CATALINA_BASE:   $CATALINA_BASE"这一行

在上面加入

JAVA_OPTS="-server -XX:PermSize=64M -XX:MaxPermSize=256m"

如果是windows

修改TOMCAT_HOME/bin/catalina.bat文件,在“echo "Using CATALINA_BASE: $CATALINA_BASE"”上面加入以下行:

     set JAVA_OPTS=%JAVA_OPTS% -server -XX:PermSize=128M -XX:MaxPermSize=512m

隐藏tomcat中执行versiosn命令的tomcat版本

1.tomcat/lib/目录

下载catalina.jar文件到本地,修改后缀为.zip文件然后解压,解压之后找到Serverinfo.properties文件中的以下参数(修改以掩饰真实版本信息):

    server.info=X

    server.built=BuildDate

server.number=X

2.修改完成后,打包为catalina.zip,然后修改zip后缀为jar, 上传到/tomcat/lib/目录即可.再次执行bin目录下的version.sh查看版本,已经被隐藏.

隐藏tomcat版本号

修改过两个地方:

1.     第一处:

找到conf下面的server.xml文件添加:server=”Microsoft-IIS/8.0”

1.png

添加

server=”Microsoft-IIS/8.0”

2.png

结果:

3.png

2.     第二处修改地方:

隐藏404页面中的版本号

cd /data/cupid_cl/webserver/lib

mkdir -p org/apache/catalina/util

vi ServerInfo.properties

server.info=Apache Tomcat Version X

/etc/init.d/cupid_cl stop

/etc/init.d/cupid_cl start

4.png

结果:

5.png

在centos安装tomcat

.jdk

1.下载和配置

  
http://www.oracle.com/technetwork/java/javase/downloads/index.html

   tar -zxvf jdk-8u60-linux-x64.gz

   mv jdk1.8.0_60 /usr/loca//java

2.配置环境变量

   vi /etc/profile

   在最后面添加如下内容:

   JAVA_HOME=/usr/local/java

   JRE_HOME=/usr/local/java/jre

   PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

  
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

   export JAVA_HOME JRE_HOME PATH CLASSPATH

3.使变量生效:

   #source /etc/profile

4.java
-version

.tomcat

1.添加变量

   export TOMCAT_HOME=/usr/local/tomcat

   export CATALINA_HOME=/usr/local/tomcat

2.#source
/etc/profile

3.启动tomcat

  cd /usr/local/tomcat/bin

  ./startup.sh

4.查看进程:ps -ef |
grep tomcat


5.添加管理员权限

   vi /usr/local/tomcat/conf/tomcat-users.xml

   找到:

   
<rolerolename=”manager-gui”/>

    <userusername=”manager”
password=”manager”roles=”manager-gui”/>

6.然后重启Tomcat服务器,文件修改生效。

   #./shutdown.sh

   #./startup.sh

7.iptables中添加8080端口列外后重启iptables服务

8.建站测试

   (1)vi /home/sdb5/tomcat7/conf/server.xml

   (2)每个站点用<Host>囊括

    <Host name=”域名
debug=”0″ appBase=”
路径
unpackWARs=”true” autoDeploy=”true”>

         <Context path=””
docBase=”
站点路径” debug=”0″ reloadable=”true”/>

         <Alias>别名<Alias>

    </Host>

 

如何整合httpd和tomcat

1.下载对应的apache版本jk,解压后放到apache22/modules目录中

http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/ 

2.在apache22/conf目录中建立文件:workers.properties输入内容如下:

workers.tomcat_home=E:\tomcat\Tomcat 6.0    

workers.java_home=E:\tomcat\java\jdk1.6\jre

ps=/

worker.list=worker1

worker.worker1.port=8009

worker.worker1.host=localhost

worker.worker1.lbfactor=1

worker.worker1.type=ajp13

3.在apache22/conf/extra/目录中建立文件jk_mod.conf输入一下内容:

LoadModule jk_module E:/httpd/apache22/modules/mod_jk.so

JkWorkersFile E:/httpd/apache22/conf/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel info

JkLogStampFormat “[%a %b %d %H:%M:%S %Y] ”

JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories

JkMount /servlet/*  worker1

JkMount /*.jsp worker1

JkMount /*.do worker1

4.然后在httpd.conf配置文件中引入jk_mod.conf文件

Include E:/httpd/apache22/conf/extra/jk_mod.conf

重启下apache服务

实现tomcat站点限制访问

1.一个站点多域名

tomcat也可以像nginxhttpd那样在Alias中可以同时设置多个域名,如:

 

2.目录权限访问

(1)对于限制某些ip的访问可以在</context>之前添加<Value>标签,如下代码进行显示:

<Valve className=”org.apache.catalina.valves.RemoteAddrValve” allow=”” deny=”192.168.1.105″/>

以上填写我的本地ip:192.168.1.105拒绝访问;当然我们也可以拒绝某个ip段的访问(deny=”192.168.1.*”)

 

(2)重新启动tomcat后打开站点显示被拒绝了.

 

(3)下面截图是tomcat官网中的说明

在2003中安装jdk1.6+tomcat6

.jdk安装

1.下载安装jdk,如果是开发者可以下载jdk安装,而如果是部署在服务器中只要下载jre就可以了,因人而异安装的路不一样这里我是安装在E:\tomcat\java\jdk1.6;在安装过程中需要您选择java安装路径jre安装路径

2.安装好jdk后就可以配置环境变量:JAVA_HOME  值为:E:\tomcat\java\jdk1.6

接着还要到path变量中添加java的变量,path中后面加入:;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;


3.接下来配置java的类路径,目的是让java编译时能找到类:

新建CLASS_PATH变量值为:.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

二.安装tomcat

1.安装tomcat会自动寻找java路径

2.安装好后配置tomcat变量

(1)新建一个系统变量值为:

TOMCAT_HOME   E:\tomcat\Tomcat6.0

(2)然后再PATH中添加%TOMCAT_HOME%\bin

(3)然后再CLASS_PATH中添加%TOMCAT_HOME%\lib\servlet-api.jar;



三.使用tomcat6.0建立多站点

1.我们打开server.xml文件在</Engine>前面添加如下代码:

<Host name=”site1.com”
debug=”0″ appBase=”webapps” unpackWARs=”true”
autoDeploy=”true”>

         <Context
path=”” docBase=”E:/tomcat/www/site1/appbase”
debug=”0″ reloadable=”true”/>

         <Alias>www.site1.com</Alias>

</Host>

<Host name=”site2.com”
debug=”0″ appBase=”webapps” unpackWARs=”true”
autoDeploy=”true”>

         <Context
path=”” docBase=”E:/tomcat/www/site2/appbase”
debug=”0″ reloadable=”true”/>

         <Alias>www.site2.com</Alias>

</Host>

2.在根目录中新建index.jsp

<%

 String message = “Hello World!”;

%>

<%=message%>

3.重启tomcat后打开站点

4.环境配置好后要能够正常使用,这里我们网上下载jeecms进行安装

apache和tomcat整合原理

tomcat 为一个jsp的容器,apache为一个web server,两者之间通信通过worker进行(由Tomcat使用Server.xml文件中Connector的标签来定义其端口和协议),通过 mod_jk的模块(由web服务器像apacheiis等使用)和Web Server通信。

整个过程其实就是让apachehttpd.conf文件调用mod_jk.confmod_jk.conf调用workers.properties,最后配置虚拟主机。

文件说明:

mod_jk.conf

主要定义mod_jk模块的位置以及mod_jk模块的连接日志设置,还有定义worker.properties文件的位置。

worker.properties

定义worker的参数,主要是连接tomcat主机的地址和端口信息。如果Tomcatapache不在同一台机器上,或者需要做多台机器上tomcat的负载均衡只需要更改workers.properties文件中的相应定义即可。

 

错误:configure: error:Cannot find the WebServer

1.在搭建web服务器时,为了整合httpdtomcat所以要下载tomcat-connectors-1.2.41-src.tar.gz进行编译:

#wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/
tomcat-connectors-1.2.41-src.tar.gz

#tar zxvf tomcat-connectors-1.2.41-src.tar.gz

#cd tomcat-connectors-1.2.41-src/native

#./configure –with-paxs= apxs地址

如果在上步中不知道apsx地址,编译是会处错误的如下:configure:error:cannot
find the webserver


2.只要找到apxs地址正确填写就不会出错: