您的位置:首页 > 运维架构 > Tomcat

Tomcat启动报A fatal error has been detected by the Java Runtime Environment

2013-10-29 14:51 597 查看
#

# A fatal error has been detected by the Java Runtime Environment:

#

# SIGSEGV (0xb) at pc=0x00002ba9d88e02da, pid=17844, tid=1076017472

#

# JRE version: 6.0_29-b11

# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.4-b02 mixed mode linux-amd64 compressed oops)

# Problematic frame:

# C [libc.so.6+0x732da] short+0x3a

#

# An error report file with more information is saved as:

# /home/iptv/bss/apache-tomcat-6.0.26/bin/hs_err_pid17844.log

#

# If you would like to submit a bug report, please visit:

# http://java.sun.com/webapps/bugreport/crash.jsp
#

问题的原因就在于 显示JIT在做编译优化的时候处理 某个方法时出错。

本利的错误是这个方法

Java代码


org.hibernate.cfg.annotations.SimpleValueBinder.setType

解决办法:让jvm跳过该方法的编译优化

在jvm启动参数中添加启动参数

Java代码


-XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBinder,setType

如果是eclipse下启动服务,则在eclipse-preference-java-installed jres 里面设置,

在 defalt vm arguments 填入上面的代码就可以了。

如果是直接通过startup 启动tomcat,则需要修改以下文件

Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh

找到

set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%

修改为

set JAVA_OPTS=%JAVA_OPTS% -XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBinder,setType %LOGGING_CONFIG%





在Default VM Arguments中加入:

-XX:CompileCommand=exclude,org/hibernate/cfg/annotations/SimpleValueBinder,setType

这句就可以了,确实加入就可以了,但是怎么感觉有点莫名其妙呢,也没说出错的原因,哪位碰到过,这个问题到底是由什么原因造成的呢?

补充:

加上这句话后,启动tomcat的时候,控制台输出了这样的字样:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐