java1.4 tomcat jk2加载异常
报错如下:
?
Apr 23, 2011 3:11:12 PM org.apache.jk.server.JkMain startINFO: Jk running ID=0 time=25/45 config=/home/shenj/jakarta-tomcat-5.0.30/conf/jk2.propertiesApr 23, 2011 3:11:12 PM org.apache.coyote.tomcat5.MapperListener initWARNING: Error registering contextsjava.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:782) at java.util.HashMap$EntryIterator.next(HashMap.java:824) at java.util.HashMap.putAllForCreate(HashMap.java:424) at java.util.HashMap.clone(HashMap.java:656) at mx4j.server.DefaultMBeanRepository.clone(DefaultMBeanRepository.java:56) at mx4j.server.MBeanServerImpl.findMBeansByPattern(MBeanServerImpl.java:1603) at mx4j.server.MBeanServerImpl.queryObjectNames(MBeanServerImpl.java:1568) at mx4j.server.MBeanServerImpl.queryMBeans(MBeanServerImpl.java:1512) at org.apache.coyote.tomcat5.MapperListener.init(MapperListener.java:115) at org.apache.coyote.tomcat5.CoyoteConnector.start(CoyoteConnector.java:1537) at org.apache.catalina.core.StandardService.start(StandardService.java:489) at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313) at org.apache.catalina.startup.Catalina.start(Catalina.java:556) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)Apr 23, 2011 3:11:12 PM org.apache.catalina.startup.Catalina start
?
经查,这是jmx.jar代码的一个bug,在1.4以上的版本中已经修复。引用一下java的官方说明:
?
The JMX technology provides the tools for building distributed, Web-based, modular and dynamic solutions for managing and monitoring devices, applications, and service-driven networks. By design, this standard is suitable for adapting legacy systems, implementing new management and monitoring solutions, and plugging into those of the future.?
Starting with the J2SE platform 5.0, JMX technology is included in the Java SE platform. Please see the JMX documentation for the?J2SE 5.0?and?Java SE 6?platforms. Previous versions of JMX technology are available?here.?
?
由于各种原因还在使用1.4版本的各位苦逼程序猿们,可以使用如下方法解决:
?
到这里http://www.oracle.com/technetwork/java/javase/tech/download-jsp-141676.html,下载jmx1.2.1版本的实现,然后在lib里面找到jmxri.jar,替换tomcat/bin/下边的jmx.jar(记得改名哦)。然后重启即可。