最近在搭建虚拟机环境,装的是CentOSQL 6.5版本,然后装的OpenJDK1.7,在Apache下载了一个纯净的Tomcat放到虚拟机上启动报错了;

这里有两个错误:

1、第一个错误,APR的问题,错误详情:

The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path

2、第二个错误,错误详情:

Exception in thread "main" java.lang.InternalError

at sun.security.ec.SunEC.initialize(Native Method)

at sun.security.ec.SunEC.access$000(SunEC.java:49)

at sun.security.ec.SunEC$1.run(SunEC.java:61)

第一个问题的解决方法:

这是一个APR的问题,因为Tomcat需要依赖APR来优化性能,就需要安装APR

1、首先安装APR,采用源码安装的方式,默认安装在:/usr/local/apr

wget    http://mirrors.cnnic.cn/apache//apr/apr-1.5.2.tar.gz

tar -zxvf apr-1.5.0.tar.gz

cd apr-1.5.0

./configure

make

make install

2、接下来安装Tomcat-native,这个gz包在Tomcat的bin目录下面已经存在了,直接解压tomcat-native;

进入目录:cd   tomcat-native-1.2.7-src/native,然后编译安装:

./configure --with-apr=/usr/local/apr  --with-java-home="/usr/lib/jvm/java-1.7.0" --with-ssl=yes

如果下载的Tomcat版本较新的话,编译安装会出现OpenSSL版本不一致的问题,无法安装,如下错误:

checking OpenSSL library version >= 1.0.2... configure: error: Your version of OpenSSL is not compatible with this version of tcnative

这事就需要下载一个版本低一点的Tomcat-native包:

wget    http://mirrors.hust.edu.cn/apache/tomcat/tomcat-connectors/native/1.1.34/source/tomcat-native-1.1.34-src.tar.gz

上面的gz包下载下来之后,放到Tomcat的bin目录下去,解压,进入目录:cd  tomcat-native-1.1.20-src/jni/native,再编译安装

3、编译安装成功之后,在Tomcat的bin目录下,新建一个名为setenv.sh的文件

新建文件中加入内容:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
         export LD_LIBRARY_PATH

4、经过上述三步,第一个问退可以解决;

第二个问题解决方法:

这是因为JDK的版本而产生的问题,我装的是OpenJDK,会出现JAR包的缺失,导致启动报错,所以这里需要更换为Oracle官方给出的JDK

1、去Oracle官方下载一个这样的包:jdk-7u79-linux-x64.tar.gz

2、解压之后,移动到/usr/local/java目录下

3、添加环境变量:vim   /etc/profile,文件最后添加下面几行

export JAVA_HOME=/usr/local/java/jdk1.7.0_79   //实际的JDK路径

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

4、完成上述安装之后,再启动Tomcat,发现还会报错:Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

这个问题是因为Tomcat没有识别出JDK的环境变量

5、修改Tomcat中bin目录的catalina.sh文件,在文件的开头,加入下面代码:

export JAVA_HOME=/usr/local/java/jdk1.7.0_79  ////实际的JDK路径

export JRE_HOME=/usr/local/java/jdk1.7.0_79/jre

最后启动Tomcat,日志打印正常,浏览器也能够访问,问题解决

Exception in thread "main" java.lang.InternalError
at sun.security.ec.SunEC.initialize(Native Method)
at sun.security.ec.SunEC.access$000(SunEC.java:49)
at sun.security.ec.SunEC$1.run(SunEC.java:61)

CentOS 6.5上的Tomcat启动报错问题的更多相关文章

  1. tomcat启动报错:Injection of autowired dependencies failed

    tomcat启动报错:Injectjion of autowired dependencies failed 环境: 操作系统:centos6.5 tomcat: 7.0.52 jdk:openjdk ...

  2. tomcat启动报错 ERROR o.a.catalina.session.StandardManager 182 - Exception loading sessions from persiste

    系统:centos6.5 x86_64 jdk: 1.8.0_102 tomcat:8.0.37 tomcat 启动报错: ERROR o.a.catalina.session.StandardMan ...

  3. (转)Eclipse4.2 Tomcat启动报错 A child container failed during start

     Eclipse4.2 Tomcat启动报错 A child container failed during start 2013-5-21 15:02:24 org.apache.catalina. ...

  4. Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误——SHH框架

    SHH框架工程,Tomcat启动报错org.springframework.web.context.ContextLoaderListener类配置错误 1.查看配置文件web.xml中是否配置.or ...

  5. tomcat启动报错Several ports (8080, 8009) required by Tomcat v6.0

    tomcat启动报错 如下图: 问题:8080.8009端口已经被占用. 解决办法: 1.在命令提示符下,输入netstat -aon | findstr 8080 2.继续输入taskkill -F ...

  6. tomcat启动报错

    [toc]启动错误 does not exist or is not a readable directory 问题:tomcat启动报错:does not exist or is not a rea ...

  7. [转]tomcat启动报错too low setting for -Xss

    tomcat启动报错too low setting for -Xss 网上给的答案都是调整Xss参数,其实不是正确的做法, -Xss:每个线程的Stack大小,“-Xss 15120” 这使得tomc ...

  8. Tomcat启动报错:[The configuration may be corrupt or incomplete]的解决方案

    1,场景说明: 偶然碰见Tomcat启动报错,此时并没有Add任何Web项目: Could not load the Tomcat server configuration at /Servers/T ...

  9. Tomcat启动报错:StandardServer.await: create[8005] java.net.BindException: Cannot assign requested address

    Tomcat启动报错:StandardServer.await: create[8005] java.net.BindException: Cannot assign requested addres ...

随机推荐

  1. 剑指offer-数组中只出现一次的数字-数组-python

    题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了两次.请写程序找出这两个只出现一次的数字.   # -*- coding:utf-8 -*- class Solution: # 返回[a, ...

  2. Spring的基本应用(1):IDEA版本

    一.Spring概述: 1.什么是Spring? Spring是分层的JavaSE/EE应用full-stack(一站式)轻量级开源框架,以IoC(Inverse Of Control:控制反转)和A ...

  3. 多Y轴示例

    //多Y轴示例 <template> <div id="main" :style="{width:'1000px',height:'500px' }&q ...

  4. 爆路径写后门拿shell的一些姿势

    [PhpMyAdmin后台拿Shell]CREATE TABLE `mysql`.`xiaoma` (`xiaoma1` TEXT NOT NULL );INSERT INTO `mysql`.`xi ...

  5. 一头扎进 JAVA

    硅不可 吉米 JAVA 基础 -- 基础不牢,地动山摇 子类应该比 父类更为 开放 (public protected default private) 子类方法不能比父类抛出更高异常( 可以为父类方 ...

  6. Android官方网站!

    Android官方网站,所有Android相关文档.官方工具.示例,全部都在上面!! http://www.android.com/

  7. linux中查看文件夹结构的小工具

    tree命令是Linux/UNIX系统中常用的命令,可以非常方便地查看文件夹的结构,并且以树形目录的形式展示 在Ubuntu中安装 sudo apt-get install tree 在CentOS中 ...

  8. 忘记oracle的sys用户密码如何修改以及Oracle 11g 默认用户名和密码

    忘记除SYS.SYSTEM用户之外的用户的登录密码 CONN SYS/PASS_WORD AS SYSDBA; --用SYS (或SYSTEM)用户登录 ALTER USER user_name ID ...

  9. postgres导入和导出

    导出整个数据库: pg_dump -h 127.0.0.1 -U zhang mydb >mydb_dum.sql 导出某个表: pg_dump -h 127.0.0.1 -U zhang my ...

  10. Linux下如何查看CPU型号、个数、核数、逻辑CPU数、位数、发行版本、内核信息、内存、服务器生产厂家

    [原文链接]:http://blog.csdn.net/mdx20072419/article/details/7767809 http://blog.chinaunix.net/uid-224252 ...