jetty启动报错

本文介绍了解决因使用特定版本的jaxen依赖而导致的java.lang.RuntimeException错误的方法。问题出现在依赖于旧版本的icu4j时。解决方案包括升级jaxen到1.1.4及以上版本或排除icu4j依赖。

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

报错信息:
 java.lang.RuntimeException: Error scanning entry com/ibm/icu/impl/data/LocaleElements_zh__PINYIN.class
 java.lang.ArrayIndexOutOfBoundsException: 48188
原因分析:
 看看项目中是不是依赖了jaxen 这个jar包并且版本在1.1.4以下

<dependency>
   <groupId>jaxen</groupId>
   <artifactId>jaxen</artifactId>
   <version>1.1.1</version>
</dependency>

因为jaxen1.1.4以下版本依赖XOM,XOM依赖icu4j,icu4j造成的这个问题。
解决办法:
 1、升级pom中的jaxen至1.1.4或更高版本。因为jaxen自1.1.4版本开始已经不依赖XOM.jar了,自然也不需要icu4j了,没有这个包自然就不用担心它报错了。

 <dependency>
       <groupId>jaxen</groupId>
       <artifactId>jaxen</artifactId>
       <version>1.1.4</version>
    </dependency>

 2、排除icu4j依赖

<dependency>
   <groupId>jaxen</groupId>
   <artifactId>jaxen</artifactId>
   <version>1.1.1</version>
   <exclusions>
      <exclusion>
         <groupId>com.ibm.icu</groupId>
         <artifactId>icu4j</artifactId>
      </exclusion>
   </exclusions>
</dependency>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值