java1.4 tomcat jk2加载异常

本文解决了Tomcat启动过程中出现的ConcurrentModificationException错误。该问题是由于JMX技术中的一个bug导致,已在J2SE 5.0及以后版本修复。文章提供了适用于J2SE 1.4版本的具体解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

报错如下:

 

Apr 23, 2011 3:11:12 PM org.apache.jk.server.JkMain start
INFO: Jk running ID=0 time=25/45  config=/home/shenj/jakarta-tomcat-5.0.30/conf/jk2.properties
Apr 23, 2011 3:11:12 PM org.apache.coyote.tomcat5.MapperListener init
WARNING: Error registering contexts
java.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(记得改名哦)。然后重启即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值