CentOS 上Tomcat 7.0.8的tldScanJar错误

问题现象:

原本在运行很好的程序,在发布时突然出现了异常:

  1. Mar 132011 9:34:18 AM org.apache.catalina.startup.TldConfig tldScanJar  
  2. WARNING: Failed to process JAR [jar:jndi:/localhost/myapp/WEB-INF/lib/jta-1.1.jar!/nullfor TLD files  
  3. java.io.IOException: No such file or directory  
  4.     at java.io.UnixFileSystem.createFileExclusively(Native Method)  
  5.     at java.io.File.checkAndCreate(File.java:1704)  
  6.     at java.io.File.createTempFile(File.java:1792)  
  7.     at java.io.File.createTempFile(File.java:1828)  
  8.     at sun.net.www.protocol.jar.URLJarFile$1.run(URLJarFile.java:204)  
  9.     at java.security.AccessController.doPrivileged(Native Method)  
  10.     at sun.net.www.protocol.jar.URLJarFile.retrieve(URLJarFile.java:198)  
  11.     at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:50)  
  12.     at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:70)  
  13.     at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)  
  14.     at sun.net.www.protocol.jar.JarURLConnection.getJarFile(JarURLConnection.java:71)  
  15.     at org.apache.catalina.startup.TldConfig.tldScanJar(TldConfig.java:507)  
  16.     at org.apache.catalina.startup.TldConfig.access$100(TldConfig.java:59)  
  17.     at org.apache.catalina.startup.TldConfig$TldJarScannerCallback.scan(TldConfig.java:332)  
  18.     at org.apache.tomcat.util.scan.StandardJarScanner.process(StandardJarScanner.java:234)  
  19.     at org.apache.tomcat.util.scan.StandardJarScanner.scan(StandardJarScanner.java:159)  
  20.     at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:306)  
  21.     at org.apache.catalina.startup.TldConfig.lifecycleEvent(TldConfig.java:585)  
  22.     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)  
  23.     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)  
  24.     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:4974)  
  25.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)  
  26.     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:812)  
  27.     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:787)  
  28.     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:607)  
  29.     at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:925)  
  30.     at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:723)  
  31.     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:470)  
  32.     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1302)  
  33.     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)  
  34.     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)  
  35.     at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:89)  
  36.     at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:343)  
  37.     at org.apache.catalina.util.LifecycleBase.setState(LifecycleBase.java:323)  
  38.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1043)  
  39.     at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)  
  40.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)  
  41.     at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1035)  
  42.     at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)  
  43.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)  
  44.     at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)  
  45.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)  
  46.     at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:724)  
  47.     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)  
  48.     at org.apache.catalina.startup.Catalina.start(Catalina.java:620)  
  49.     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)  
  50.     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)  
  51.     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)  
  52.     at java.lang.reflect.Method.invoke(Method.java:597)  
  53.     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:304)  
  54.     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:432)  
  55. Mar 132011 9:34:18 AM org.apache.catalina.startup.TldConfig tldScanJar  
  56. WARNING: Failed to process JAR [jar:jndi:/localhost/myapp/WEB-INF/lib/spring-context-support-3.0.5.RELEASE.jar!/nullfor TLD files  
  57. java.io.IOException: No such file or directory  
  58.     at java.io.UnixFileSystem.createFileExclusively(Native Method)  
  59.     at java.io.File.checkAndCreate(File.java:1704)  
  60.     at java.io.File.createTempFile(File.java:1792)  

由于程序时是一直在开发过程中,每天都有很多更新,很难查出来时什么地方引起了这个问题。和Web开发人员确认,他们也认为没有添加任何新的内容,和开发之初都是一样的。

解决方法:

没有Google到解决方法,就尝试升级了一下,下载安装Tomcat7.0.11。问题解决。

疑惑:

同一版本的程序同时运行在Ubuntu 64服务器(Tomcat7.0.8)、Win7和WinXP开发环境中(Tomcat7.0.8)以及CentOS测试服务器上(Tomcat7.0.8)却偏偏是CentOS上有问题。有些费解。

相关推荐