又见SERVER: Error filterStart

      又耗费了将近的一天的时间,都是因为这个恼人的SERVER: Error filterStart.

      今天要把原来一个运行良好的网站发布到另外一台服务器上,原本应该是很简单的事情,在估计任务时,我只给它了半天时间(其实已经是多的了,只需要安装Tomcat和新建一个数据库即可)。可是当我把原来的程序复制到tomcat的webpps目录下以后,在浏览器输入地址浏览,才发现大事不妙,页面显示无法找到资源。首先想到的,就是查看tomcat的log。

      7-Jul-10 10:18:40 AM org.apache.catalina.core.StandardContext start
SEVERE: Error filterStart
7-Jul-10 10:18:40 AM org.apache.catalina.core.StandardContext start
SEVERE: Context [/test] startup failed due to previous errors

      看到这句话就知道大事不妙,因为曾经有过类似的经验,这次就知道是由于JDK版本不对引起的问题。问题在于:这两台服务器的道理有什么不同?

      1. 是不是Tomcat的版本不一致?Log里写的清楚:INFO: Starting Servlet Engine: Apache Tomcat/5.5.23

          看来这个问题不存在。

      2. 那肯定就是两台服务器的Java环境配置有问题。运行java -version 命令查看,都是:OpenJDK(1.6.0)。看来这个问题也不存在。

      这不就奇怪了吗?!!

      先把Filter去掉,看看运行里面的Servlet是不是会有更加明确的错误信息。果不其然,被我逮到了:

      web.servlet.BugManageServlet (unrecognized class file version) 

            java.lang.VMClassLoader.defineClass(libgcj.so.7rh)

      看来还是Java环境设置有问题。Google一下吧,发现下面一篇文章:

     http://www.linuxquestions.org/questions/linux-newbie-8/unrecognized-class-file-version-when-running-simple-java-program-686753/

      原来是因为javac和java不同版本造成的。可是我的程序都是编译过直接复制到Tomcat下面的,难道也存在这个问题?(如果有对Tomcat内部细节了解的大侠看到,能帮忙解答下,不胜感激!)不管怎么样,先检查再说,果然问题浮现:

       java -version: 1.6.0

    javac -version: 1.4.2

      虽然看到了不一样(问题2是存在),还是有些怀疑。不过现在也别无它法,将二者改为一致版本总归没有坏处。不过上面帖子中提到的命令不太会用。接着Google,发现:

      在CentOS上安装Sun-JDK1.6

      想想在Console中下载和安装Sun JDK实在麻烦,就先作为备选方案,接着看Open JDK。因为之前已经安装了Open JDK,就想用alternatives命令,结果提示命令不存在,就赶紧向旁边的Linux大牛Alix请教。他说切换到root时,使用"sudo su -",后面的减号一定要加上,这样就可以重新加载bash profile。果真灵验,牛!

      alternatives --config java

      已经是open-jdk-1.6.0

      alternatives --config javac

      选项中只有jdk-1.4.2,没有其他可选项。看来安装的Open JDK中,不包含javac命令,那就说只安装了jre(/usr/lib/jvm/java-1.6.0-openjdk.x86_64目录里只有jre)。

      于是:yum search jdk

      出来了一个长长的列表,一眼就看了java-1.6.0-openjdk-devel.x86_64,好像想起有文章说过要编译java程序,需要安装这个development包。为了安全起见,直接

      yum install java-1.6.0-openjdk-*

      安装完毕,重新alternatives --config javac,这次多了open jdk 1.6.0的选项。

      然后,清空tomcat/work目录,重启tomcat,浏览器访问,OK!

 

      我的另外一篇文章:由于JRE版本导致的Error filterStart问题

时间: 2024-07-29 07:03:09

又见SERVER: Error filterStart的相关文章

“/”应用程序中的服务器错误和Server Error in '/' Application... 的终极解决方法

"/"应用程序中的服务器错误. 运行时错误 说明: 服务器上出现应用程序错误.此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因).但可以通过在本地服务器计算机上运行的浏览器查看. 详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的"web.config"配置文件中创建一个 标记.然后应将此 标记的"mode"属性设置为"Off". .we

由HTTP 500 Internal server error想到的

error|server 今天用笔记本教育网内上网,然后回到宿舍后,再打开VS.NET的一个solution时,却出现错误: 尝试创建或打开位于URL:http://localhost/xxx的web项目时,Web服务器报告了一下错误:"Http/1.0 500 Server Error" 随后便用百度.google找办法.很长时间过后都无济于事.同时发现存在如下症状: 所有本地网站.包含localhost(即便是静态页面)也无法打开.更别提用VS.NET打开某个项目工程了 并且,我试

ASP.NET程序错误“HTTP/1.0 500 Server Error”的一个解决办法

asp.net|error|server|程序|错误|解决 今天同事在打开以前的ASP.Net项目时,报了此错"HTTP/1.0 500 Server Error"经多方查询,原因多种多样,解决方法也是五花八门,但都无效.最后灵机一动,尝试着重新进行Asp.net的IIS注册,再打开项目时,ok!问题解决. 步骤:命令行模式进入 C:\WINNT\Microsoft.NET\Framework\v1.1.4322 先执行卸载 aspnet_regiis.exe -u再执行注册 aspn

Nginx提示:500 Internal Server Error错误的解决方法

  本文章来给大家总结了大量关于导致nginx中提示500 Internal Server Error错误的原因总结与解决方法分析有需要了解的朋友可参考参考 现在越来越多的站点开始用 Nginx ,("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了.Igor 将源代码以类BSD许可证的形

请求-HTTP 错误 500.0 - Internal Server Error

问题描述 HTTP 错误 500.0 - Internal Server Error 求解决方法,php模块路径 extension_dir = "C:phpext" WIN 2012 R2安装好IIS8.5和配置好PHP访问本地http://localhost/ 出现 HTTP 错误 500.0 - Internal Server Error C:phpphp-cgi.exe - FastCGI 进程意外退出 最可能的原因: IIS 收到了请求:但在处理请求过程中出现内部错误.此错误

网页错误 rror-在虚拟机部署网页报错:Server Error in '/' Application.

问题描述 在虚拟机部署网页报错:Server Error in '/' Application. 在虚拟机部署网页时不时会报此错,重启IIS后暂时没问题,过多一会儿又提示该错! 参数:IIS6.0.asp.net 4.0.Win2003 SP2 备注:此为应用服务器,数据服务器在另外一台机 解决方案 是不是页面本身处理有问题 解决方案二: 在本机(非虚拟机)中部署无出现任何问题,在虚拟机中就报错...

.net-进入后台更新文件显示“Server Error in '/' Application”求高手解决

问题描述 进入后台更新文件显示"Server Error in '/' Application"求高手解决 ExecuteScalar requires an open and available Connection. The connection's current state: Broken. Description: An unhandled exception occurred during the execution of the current web request.

php-nginx安装成功后访问IP提示500 Internal Server Error

问题描述 nginx安装成功后访问IP提示500 Internal Server Error 截取报错信息如下: nginx.conf配置文件是copy的别人教程里面的. #user nobody; worker_processes 1; error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { worker_c

jsp+struts2+jquery ajax返回Internal server error

问题描述 jsp+struts2+jquery ajax返回Internal server error 架构: struts2+jsp+jquery 关键代码: jQuery.ajax({ url: 'business/xxxx.action', data: 'id='+id, type: 'POST', dataType:"json", error: function(request,textStatus,errorThrown) { alert(errorThrown); //前台