1.1 windows下安装
1.1.1 配置环境变量
安装完成后,还要进行 Java 环境的配置,才能正常使用,步骤如下:
(1)在我的电脑点击右键——〉选择属性,
(2)在弹出界面上:选择高级——〉环境变量
(3)点击环境变量界面的系统变量栏的“新建”按钮
| 变量名 | 变量值 |
第一种 | JAVA_HOME(必须大写) | C:\Program Files\Java\jdk1.6.0_10 |
Path | %JAVA_HOME%\bin | |
classpath | .; %JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar | |
第二种 | Path | C:\Program Files\Java\jdk1.6.0_10\bin |
注意:第一种,JDK1.4以后的版本可以暂时不配置。
(4) “开始”->;“运行”,键入“cmd”;
(5) 键入命令“java -version”,“java”,“javac”几个命令,出现画面,说明环境变量配置成功;输入set还可
以查看系统所有变量的配置。
那么为何要设置这些环境变量呢?
JAVA_HOME:配置到 JDK 安装路径。注意:变量名必须书写正确,全部大写,中间用下划线。有以下好处:
? 为了方便引用。比如,JDK安装在C:\Program Files\Java\jdk1.6.0_10 目录里,则设置 JAVA_HOME 为该目录路径, 那么以后要使用这个路径的时候,只需输入%JAVA_HOME%即可, 避免每次引用都输入很长的路径串。
? 归一原则。当JDK路径被迫改变的时候, 仅需更改JAVA_HOME的变量值即可, 否则,你就要更改任何用绝对路径引用JDK目录的文档, 要是万一你没有改全, 某个程序找不到JDK,后果是可想而知。
?为第三方软件服务。基于 Java 的第三方软件会引用约定好的JAVA_HOME变量,那么它们能够找到 JDK 的位置,不然, 将不能正常使用该软件。如果某个软件不能正常使用,不妨想想是不是这个问题。
PATH:设置命令的搜索路径,在执行命令时,操作系统就会在PATH设置的路径去查找命令的可执行文件,提供给操作系统寻找到 Java 命令工具的路径。通常是配置到: JDK 安装路径\bin。完成配置以后,使用编译器和解释器就会很方便,可以在任何路径下使用bin目录下的Java 命 令 , 而 不 需 要 写 出 完 整 的 路 径 : C:\Program Files\Java\jdk1.6.0_10 \bin\java 。
CLASSPATH:系统搜索字节码(类文件.class)文件的搜索路径。提供程序在运行期寻找所需资源的路径,比如:.class类文件、文件、图片等等。在 windows环境下配置“.”代表当前路径,那么在执行java命令时,就会先到当前路径寻找class类文件。这个配置对于Java初学者比较难理解,我们在后面的Java运行过程中,再详细体会。
注意:在 windows 操作系统上,最好在 CLASSPATH 的配置里面,始终在前面保持“.;”的配置。通过在windows窗口设置环境变量,可以永久更改系统环境变量。也可以在 dos命令行窗口,通过dos命令的方式修改环境变量,具体命令如下:
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_10;
set path=%JAVA_HOME%\bin;
set classpath=.;
但通过这种方式修改的环境变量只在当前的dos命令行窗口有效,对于其他的dos命令行窗口则无效。
注意:如果更改了系统环境变量的配置,必须重新打开 dos 窗口,就是打开一个新的 dos 窗口,环境变量的新配置才会有效,否则,dos 窗口就还应用旧的环境变量的旧配置。
1.1.2 JDK、JRE、JVM的区别
v JDK:(Java Development Kit), java开发包,它包含了java的编译,调试,运行整个环境和包含了整个类库的软件包
v JRE:(Java Runtime Environment), java运行环境, jre是jdk的子集,在一套完整的jdk中就包含了jre, jre只负责运行一个编译好的java程序(字节码文件bytecode), 而jdk可以去编译,调试,运行整个操作过程都支持
Java运行环境的三项主要功能:
加载代码:由class loader 完成;
校验代码:由bytecode verifier 完成;
执行代码:由 runtime interpreter完成。
v JVM: (Java Virtual Machine),在jre内部有一个软件组件jvm就是java虚拟机
1.1.3 JDK的结构简介
各目录含义 | |
bin | (binary 二进制),jdk的基本应用程序都在这里,如javac、java、javadoc等 |
domo/sample | java自带的一些例子程序 |
include | 用于编译本地方法的文件,即Java调用C、C++语言的头文件,用于扩展Java的功能 |
jre | java运行时的环境在这里 |
lib | (libary 库)java的常用类库 |
src.zip | Java开放的部分源代码,常用类库的源代码 |
bin目录( java开发调试的命令, exe文件,连接库文件,编译器等等 ) | |
名称 | 解释 |
appletviewer | 小程序浏览器,一种执行HTML文件上的java小程序java的浏览器 |
java | java解释器,运行一个字节码文件,直接从类文件执行java应用程序字节代码 |
javac | java编译器,编译一个java文件,将java源代码转换成字节码 |
javadoc | 根据java源码级说明语句生成HTML文档,Javadoc解析Java源文件中的声明和文档注释,并产生相应的HTML页面,描述公有类、保护类、内部类、接口、构造函数、方法。在实现时,javadoc要求且依赖于Java编译器完成其工作。 |
javah | 蝉声可以调用java过程的C过程,或建立能被java程序调用的C过程头文件 |
javap | java的反汇编器,将class反编译成Java bytecodes。显示编译类文件中的可访问功能和数据,同时显示字节代码含义 |
jar | 可将多个文件合并为单个JAR文件,jar是个多用途的压缩工具,它基于ZIP和ZLIB压缩格式的 |
jdb | java调试器, java的debug工具,可以逐行执行程序,设置断点和检查变量 |
jps | 查看JVM进程信息用的 |
keytool | 生成keystore文件 |
native2ascii | 将中文unicode码转换成ascii码的,-reverse参数可以将ascii码转换回来 |
1.2 linux下安装
1. 从www.oracle.com下载最新的Java SE Development Kit 7 jdk-7-linux-i586.rpm
2. 将JDK安装文件jdk-7-linux-i586.rpm拷贝到Redhat任意目录下。例如:/opt/jdk(目录jdk需要手动新建)
3. 执行 rpm -ivh jdk-1_5_0_17-linux-i586.rpm
此时,系统会开始安装JDK。安装结束后可以在/usr目录下发现新增了一个名为java的文件夹。该文件夹就是安装好的JDK目录。
4. 设置环境变量
a. 进入/etc文件夹,找到文件profile并打开(命令为:#vi profile)。
b. 找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC,修改为下面的形式(按i让编辑器处于插入状态):
vi /etc/profile
export JAVA_HOME='/usr/java/jdk1.8.0_05'
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
按ESC退出编辑模式,在文件末尾输入:wq回车 保存并退出vi
5. 设置完毕后,保存文件。重启Redhat后(或者使用 source /etc/profile 使配置文件立即生效)登录控制终端,键入:java -version;
如果出现java version “1.7.0”等字样,说明您的JDK已经安装成功了!
如果不能正常显示版本号可能是由于系统自带的是jdk1.4.2
需要卸载后才能使用java -version看到正确的版本号
rpm -e –nodeps java-1.4.2-gcj-compat-1.4.2.0-40jpp.115.i386
source /etc/profile
java -version
就可以看到正确的版本号了
6.测试配置环境
写个简单的HelloWorld来测试一下
[root@esprit java]# vi HelloWorld.java
文件中输入:
public class HelloWorld {
public static void main(String args[]) {
System.out.println( " Hello World in Linux!! " );
}
}
:wq 保存退出
[root@esprit java]# javac HelloWorld.java
没有错误,接着
[root@esprit java]# java HelloWorld
shell下输出:Hello World in Linux!!
第二章 Tomcat简介
2.1 Tomcat 背景
自从JSP发布之后,推出了各式各样的JSP引擎。Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持 Servlet,这样Tomcat就诞生了。Tomcat 是jakarta项目中的一个重要的子项目,其被JavaWorld杂志的编辑选为2001年度最具创新的java产品,同时它又是sun公司官方推荐的 servlet和jsp容器,因此其越来越多的受到软件公司和开发人员的 喜爱。servlet和jsp的最新规范都可以在tomcat的新版本中得到实现。其次,Tomcat是完全免费的软件,任何人都可以从互联网上自由地下载。Tomcat与Apache的组合相当完美。
2.2 Tomcat目录
1. bin :存放各种平台下启动和关闭Tomcat的脚本文件。其中有个档是catalina.bat,打开这个windos配置文件,在非注释行加入JDK路径,例如 : SET JAVA_HOME=C:j2sdk1.4.2_06 保存后,就配置好tomcat环境了。 startup.bat是windows下启动tomcat的文件,shutdown.bat是关闭tomcat的文件。
2. conf :存放不同的配置文件(server.xml和web.xml);tomcat启动的时候需要读取的配置文件:server.xml(tomcat主要配置文件)、web.xml和tomcatat-users.xml、catalina.policy(安全策略文件)等。修改了以后需要重启tomcat才能生效.最重要的是 server.xml;配置tomcat组件的XML文件server.XML其中包括
I.顶层类元素[Top Level Elements]: 位于整个配置文件的顶层, 包括和;
II.连接器类元素[Connectors ]: 客户和服务(容器类元素)间的通讯接口。接受客户请求,返回响应结果;
II.容器类元素[Containers]: 处理客户请求并且生成响应结果,包含3个:
IV.嵌套类元素[Nested Components]: 可以加入到容器中的元素,包括:等
一个包含一个或多个,一个包含唯一一个和一个或多个,多个共享一个;一个包含多个,每个定义一个虚拟主机,包含一个或多个web应用; 元素是代表一个在虚拟主机上运行的Web应用。标签的描述
3. Doc:存放 Tomcat文档;
4. Common:存放Tomcat运行需要的库文件(JARS);
5. logs:存放Tomcat执行时的LOG文件(日志文件);
6. src: 存放Tomcat的源代码;(这个要看你下载的是何种tomcat啦)
7. webapps:Tomcat的主要Web发布目录(包括应用程序示例);
8. work:存放jsp编译后产生的class文件;
9. temp : 临时活页夹,Tomcat运行时候存放临时文件用的。
2.3 Tomcat 类加载
Bootstrap($JAVA_HOME/jre/lib/ext/*.jar) 其实直接双击该jar也会使得tomcat运行起来。
System($CLASSPATH/*.class和指定的jar)
Common($CATALINA_HOME/common 下的classes,lib,endores三个子目录)
Catalina ($CATALINA_HOME/server/下的classes和lib目录仅对Tomcat可见)
&Shared($CATALINA_HOME/shared/下的classes和lib目录以及$CATALINA_HOME/lib目录)仅对Web应用程序可见,对Tomcat不可见WebApp($WEBAPP/Web-INF/*仅对该WEB应用可见classes/*.class lib/*.jar)
加载类和资源的顺序为:
1、/Web-INF/classes
2、/Web-INF/lib/*.jar
3、Bootstrap
4、System
5、$CATALINA_HOME/common/classes
6、$CATALINA_HOME/common/endores/*.jar
7、$CATALINA_HOME/common/lib/*.jar
8、$CATALINA_HOME/shared/classes
9、$CATALINA_HOME/shared/lib/*.jar
2.4 server.xml配置简介:
下面讲述这个文件中的基本配置信息,更具体的配置信息请参考tomcat的文档:
server:
1、port 指定一个端口,这个端口负责监听关闭tomcat的请求
2、shutdown 指定向端口发送的命令字符串
service:
1、name 指定service的名字
Connector (表示客户端和service之间的连接):
1、port 指定服务器端要创建的端口号,并在这个端口监听来自客户端的请求。
2、minProcessors 服务器启动时创建的处理请求的线程数
3、maxProcessors 最大可以创建的处理请求的线程数
4、enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
5、redirectPort 指定服务器正在处理http请求时收到了一个SSL传输请求后重定向的端口号
6、acceptCount 指定当所 有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
7、connectionTimeout 指定超时的时间数(以毫秒为单位)
Engine (表示指定service中的请求处理机,接收和处理来自Connector的请求):
1、defaultHost 指定缺省 的处理请求的主机名,它至少与其中的一个host元素的name属性值是一样的
Context (表示一个web应用程序):
1、docBase 应用程序的路径或 者是WAR文件存放的路径
2、path 表示此web应用程序的url的 前缀,这样请求的url为
http://localhost:8080/path/****
3、reloadable 这个属性非常重要,如果为true, 则tomcat会自动检测应用程序的/WEB-INF/lib 和/WEB-INF/classes目 录的变化,自动装载新的应用程序,我们可
以在不重起tomcat的情况下改变应用程序
host (表示一个虚拟主机):
1、name 指定主机名
2、appBase 应用程序基本目 录,即存放应用程序的目录
3、unpackWARs 如果为true,则tomcat会自动将WAR文件解压,否则不解压,直接从WAR文 件中运行应用程序。
Logger (表示日志,调试和错误信息):
1、className 指定logger使用的类名,此类必须 实现org.apache.catalina.Logger 接口。
2、prefix 指定log文件的前缀
3、suffix 指定log文件的后缀
4、timestamp 如果为true,则log文件名中要加入时间,如下
例:localhost_log.2001-10-04.txt
Realm (表示存放用户名,密码及role的数据库):
1、className 指定Realm使用的类名,此类必须实现org.apache.catalina.Realm接口。
Valve (功能与Logger差不多,其prefix和suffix属性解释和Logger 中的一样):
1、className 指定Valve使用的类名,如用org.apache.catalina.valves.AccessLogValve
类可以记录应用程序的访问信息
directory(指定log文件存放的位置):
1、pattern 有两个值,common方式记录远程主机名或ip地 址,用户名,日期,第一行请求的字符串,HTTP响应代码,发送的字节数。combined方式比common方式记录的值更多。
2.5 web.xml配置简介:
?1、默认(欢迎)文件的设置
? 在tomcat4\conf\web.xml中,与IIS中的默认文件意思相同。
? ?
??? index.html
??? index.htm
??? index.jsp
??
?2、报错文件的设置
??
???404
???/notFileFound.jsp
??
??
???java.lang.NullPointerException
???/null.jsp
??
??如果某文件资源没有找到,服务器要报404错 误,按上述配置则会调用\webapps\ROOT\notFileFound.jsp。
??如果执行的某个JSP文 件产生NullPointException ,则会调用\webapps\ROOT\null.jsp
?3、会话超时的设置
??设置session 的过期时间,单 位是分钟;
??
???30
??
?4、过滤器的设置
??
???FilterSource
???project4. FilterSource
??
??
???FilterSource
???/WwwServlet
???(/haha/*)
??
??过滤:
??1) 身份验证的过滤Authentication Filters
??2) 日志和审核的过滤Logging and Auditing Filters
??3) 图片转化的过滤Image conversion Filters
??4) 数据压缩的过滤Data compression Filters
??5) 加密过滤Encryption Filters
??6) Tokenizing Filters
??7) 资源访问事件触发的过滤Filters that trigger resource access events XSL/T 过滤XSL/T filters
??9) 内容类型的过滤Mime-type chain Filter 注意监听器的顺序,如:先安全过滤,然后资源,
然后内容类型等,这个顺序可以自己定。
2.6 管理
1、用户配置
在进行具体Tomcat管理之前,先给tomcat添加一个用户,使这个用户有权限来进行管理。
打开conf目录下的tomcat-users.xml文 件,在相应的位置添加下面一行:
lhr" password="lhr" roles="standard,manager"/>
然后重起tomcat,在浏览器中输入http://localhost:8080/manager/,会弹出对话框,输入上面的用户
名和密码即可。
name="lhr" password="lhr" roles="admin-gui,manager-gui"/>
2、应用程序列表
在浏览器中输入http://localhost:8080/manager/list,浏览器将会显示如下的信息:
OK - Listed applications for virtual host localhost
/ex:running:1
/examples:running:1
/webdav:running:0
/tomcat-docs:running:0
/manager:running:0
/:running:0
上面显示的信息分别为:应用程序的路径、当前状态、连接这个程序的session数
3、重新装载应用程序
在浏览器中输入 http://localhost:8080/manager/reload?path=/examples,浏览器显示如下:
OK - Reloaded application at context path /examples
这表示example应用程序装载成功, 如果我们将server.xml的Context元素的reloadable属性设为true, 则没必要利用这种方式重新装载应用程序,因为tomcat会自动装载。
4、显示session信息
在浏览器中输入http://localhost:8080/manager/sessions?path=/examples,浏览器显示如下:
OK - Session information for application at context path /examples Default maximum session inactive
interval 30 minutes
5、启动和关闭应用程序
在浏览器中输入http://localhost:8080/manager/start?path=/examples和
http://localhost:8080/manager/stop?path=/examples分别启动和关闭examples应用程序。
2.7 Tomcat 整理
2.7.1 apr
许多朋友可能在启动tomcat的时候都会看到类似这样的信息:
引用
org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Java\jre\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS
出现这种情况是这表示没有找到APR
简要解决办法:去http://tomcat.heanet.ie/native/ 下载编译好的tcnative-1.dll文件,目前最新为1.1.14,拷贝至jdk\bin下,再启动就可以成功加载APR了。
引用
org.apache.catalina.core.AprLifecycleListener init
信息: Loaded Apache Tomcat Native library 1.1.14.
org.apache.catalina.core.AprLifecycleListener init
信息: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].
2.7.2 URIEncoding
有时候在做开发的时候经常发现文本框输入的中文到了程序中成了乱码,其实是因为在端口监听部分缺少编码。
Xml代码
1 URIEncoding="UTF-8"
解决方法如下:
原始部分
8080端口上
Xml代码
2 <connector< span=""> port="8080" protocol="HTTP/1.1"
3 connectionTimeout="20000"
4 redirectPort="8443" />
修改后
Xml代码
5 <connector< span=""> port="8080" protocol="HTTP/1.1"
6 connectionTimeout="20000"
7 redirectPort="8443" URIEncoding="UTF-8" />
8009端口 ajp跳转服务上,关于这个端口在apache http 做跳转时,要相当注意
Xml代码
8 <connector< span=""> port="8009" protocol="AJP/1.3" redirectPort="8443" />
修改后
Xml代码
9 <connector< span=""> port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8" />
这样,服务器得到的中文字符就不会再有乱码了。
2.7.3 设置Tomcat管理员帐号
修改tomcat7/conf/tomcat-users.xml文件,在的标签前添加一行
<user username="tomcat" password="tomcat" roles="admin,manager"/>
让tomcat用户拥有管理员权限。
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="tomcat" roles="manager-gui,admin-gui,admin,manager"/>
Tomcat的Manager显示403 Access Denied
管理tomcat的时候遇到了以下问题:
1.刚开始需要用户名密码,不知道用户名和密码是什么,但是输入什么都不正确。
解决办法:
自己在tomcat-users.xml中按格式添加用户 conf文件夹里面
默认是注释掉了的,这主要是考虑到服务器的安全,如果是本地测试,去掉以下这段注释,然后重启动服务器,再输入
<role< span=""> rolename="tomcat"/>
<role< span=""> rolename="role1"/>
<user< span=""> username="tomcat" password="tomcat" roles="tomcat"/>
<user< span=""> username="both" password="tomcat" roles="tomcat,role1"/>
<user< span=""> username="role1" password="tomcat" roles="role1"/>
用户和密码都一目了然了。
2.进入manager界面之后,显示的是403 Access Denied。
解决办法:
在conf/tomcat-users.xml文件中看到这么一段话:
NOTE: By default, no user is included in the "manager-gui" role required
to operate the "/manager/html" web application. If you wish to use this app,
you must define such a user - the username and password are arbitrary.
也就是说,为了考虑安全,tomcat默认还是没有manager-gui的管理权限的,如果想要使用manager
的话,需要自行加入管理权限(角色)。
需要加一个这样的权限(角色)
<role< span=""> rolename="manager-gui"/>
然后再加到需要的用户名中去
<user< span=""> username="tomcat" password="tomcat" roles="tomcat,manager-gui"/>
这样OK了。
xml version='1.0' encoding='utf-8'?> <tomcat-users> <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="ming" password="064417" roles="manager-gui,admin-gui"/> tomcat-users>
2.7.4 设置SSL
首先,我们要创建密钥:
Shell代码
10 keytool -genkey -alias tomcat -keyalg RSA
此时,用户主目录下会生成一个.keystore文件。
然后,我们配置server.xml文件,找到SSLEnabled="true"所在的标签,将其解除注释,同时填补两个属性:
1.keystoreFile="C:/Users/Zlex/.keystore"
2.keystorePass="123456"
keystoreFile 指的是你的密钥文件存储的路径,keystorePass指的是你的密码。
举例如下:
Xml代码
11
17 <connector< span="">
18 SSLEnabled="true"
19 clientAuth="false"
20 keystoreFile="C:/Users/Zlex/.keystore"
21 keystorePass="123456"
22 maxThreads="150"
23 port="8443"
24 protocol="HTTP/1.1"
25 scheme="https"
26 secure="true"
27 sslProtocol="TLS" />
最后,重启tomcat,在地址栏中访问 https://localhost:8443/。
将上述port="8443"配置改为port="443",可以通过https://localhost/直接访问。
需要双向认证?参考如下内容:
Xml代码
28 <connector< span=""> port="443"
29 URIEncoding="UTF-8"
30 useBodyEncodingForURI="true"
31 maxHttpHeaderSize="33192"
32 maxThreads="150"
33 minSpareThreads="25"
34 maxSpareThreads="75"
35 enableLookups="false"
36 disableUploadTimeout="true"
37 acceptCount="100"
38 scheme="https"
39 secure="true"
40 SSLEnabled="true"
41 clientAuth="true"
42 keystoreFile="conf/server.keystore"
43 keystorePass="123456"
44 truststoreFile="conf/ca.p12"
45 truststorePass="123456"
46 truststoreType="PKCS12"
47 sslProtocol="TLS" />
其中,
Xml代码
48 clientAuth="true"
49 keystoreFile="conf/server.keystore"
50 keystorePass="123456"
51 truststoreFile="conf/ca.p12"
52 truststorePass="123456"
53 truststoreType="PKCS12"
clientAuth="true"开启双向认证
keystoreFile="conf/server.keystore" 指向服务器密钥库
keystorePass="123456" 服务器密钥库密码
truststoreFile="conf/ca.p12"指向CA信任库
truststorePass="123456"CA信任库密码
truststoreType="PKCS12"CA信任库格式,除了PKCS#12还有JKS,JKS为java原生默认支持的密钥库格式!
更多ssl配置访问http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html。
5.通过GZIP压缩加速服务器响应速度
只需要配置:
Xml代码
54 <connector< span="">
55 port="8080"
56 protocol="HTTP/1.1"
57 connectionTimeout="20000"
58 redirectPort="443"
59 URIEncoding="UTF-8"
60 compression="on"
61 noCompressionUserAgents="gozilla, traviata"
62 compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json"
63 />
说说配置细节:
compression="on" 开启压缩支持
noCompressionUserAgents="gozilla, traviata" 不压缩的内容
compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain,application/json" 压缩的类型
之后进行的访问均可获得GZIP压缩支持
6.设置静态页面编码
修改web.xml
加入如下内容,是*.hml、*.html静态页面默认字符集编码为UTF-8
Xml代码
64
65 htm
66 text/html;charset=utf-8
67
68
69 html
70 text/html;charset=utf-8
71
7.配置JVM
找到JAVA_OPTS进行配置:
Java代码
72 JAVA_OPTS="-Xms512m -Xmx512m -XX:MaxPermSize=256m -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=UTF-8"
启动tomcat时 出现如下错误。
2012-5-14 9:50:53 org.apache.catalina.core.AprLifecycleListener init
信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\ProgramWork\Java\jdk1.6.0_31\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;.;C:\ProgramWork\Java\jdk1.6.0_31\bin:C:\ProgramWork\Java\jdk1.6.0_31\jre\bin;C:\Windows\system32;................ (x86)\IDM Computer Solutions\UltraCompare\;C:\ProgramWork\GWT_library\App Engine_Home\google_appengine\;.
2012-5-14 9:50:53 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8083
2012-5-14 9:50:53 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 427 ms
2012-5-14 9:50:54 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2012-5-14 9:50:54 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.35
2012-5-14 9:50:54 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8083
2012-5-14 9:50:54 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8029
2012-5-14 9:50:54 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/13 config=null
2012-5-14 9:50:54 org.apache.catalina.startup.Catalina start
信息: Server startup in 191 ms
网上找了一些:
出现这种情况是这表示没有找到APR
简要解决办法:去 http://tomcat.heanet.ie/native/ 下载编译好的tcnative-1.dll文件,目前最新为1.1.14,拷贝至jdk\bin下,再启动就可以成功加载APR了。
这不是我要说的重点。 我按这操作,但是还是一样的错误。
然后我找到 tomcat目录 通过 bat 目录启动, 结果启动正常,
我以为问题解决了,就又在Eclipse 启动 tomcat ,还是错误。。。
稍微思考下,就想通了。只要将
将tomcat/bin目录 下的 tcnative-1.dll 复制到 jdk/bin 目录下
OK 解决了。当然 我这前提是tomcat 能通过starupt.bat运行。
2.8 修改tomcat的jdk或jre目录
可以修改catalina.sh 或 catalina.bat 在最前面加上JAVA_HOME=xxxx 指定要使用的jdk根目录
2.9 Tomcat启动不起来,多半是环境变量没设置好
提示错误:
The catalina_home environment variable is not defined correctly This environment variable is needed to run this program
The java_home environment variable is not defined correctlyThis environment variable is needed to run this programNB: java_home should point to a jdk not a jre
======================================= 解决分割线 ==========================================
在系统变量中添加如下变量
JAVA_HOME
D:\Program Files\Java\jdk1.6.0_22 (JDK路径,不是JRE,只到文件夹,不要到bin)
CATALINA_HOME
C:\tomcat (Tomcat路径,只到文件夹,不要到bin)
在Path中添加以上两个变量
%JAVA_HOME%\bin;%CATALINA_HOME%\bin; (注意要与前面的用英文分号隔开,末尾加英文分号)
在classpath中增加两个变量 (如果没有classpath,创建一个就行)
%JAVA_HOME%\lib;%CATALINA_HOME%\lib; (注意要与前面的用英文分号隔开,末尾加英文分号)
2.10 linux 下安装tomcat
下载tomcat,地址如下:
http://tomcat.apache.org/download-70.cgi
1)解压并更新文件名
在RHEL下进行解压缩,执行tar -zxvf apache-tomcat-7.0.19.tar.gz,再执行mv -f apache-tomcat-7.0.19 tomcat,更改文件名。
2)启动tomcat,进入./tomcat/bin目录,执行./startup.sh
3)验证,在浏览器中输入http://127.0.0.1:8080/,看是否能看到tomcat的主页,如果能看到说明安装成功。
4)关闭tomcat,执行/usr/local/tomcat/bin/shutdown.sh。
5)修改tomcat的端口号,vi /usr/local/tomcat/conf/server.xml,查找8080,将查询到如下内容:
connectionTimeout="20000"
redirectPort="8443" />
将其中的8080改为80或其它端口即可。
如果rhel本机虚拟机上可以登陆,但是windows 不能登陆的话查看是否存在防火墙呢?
(1) 重启后永久性生效:
开启:chkconfig iptables on
关闭:chkconfig iptables off
(2) 即时生效,重启后失效:
开启:service iptables start
关闭:service iptables stop
2.10.1 用户配置
在进行具体Tomcat管理之前,先给tomcat添加一个用户,使这个用户有权限来进行管理。
打开conf目录下的tomcat-users.xml文 件,在相应的位置添加下面一行:
lhr" password="lhr" roles="standard,manager"/>
然后重起tomcat,在浏览器中输入http://localhost:8080/manager/,会弹出对话框,输入上面的用户
名和密码即可。
name="lhr" password="lhr" roles="admin-gui,manager-gui"/>