java.lang.IllegalArgumentException: Illegal pattern component: XXX


问题、Spark bug:java.lang.IllegalArgumentException: Illegal pattern component: XXX 解决办法

原因概述:代码用到了调用spark.read.json,maven升级的时候,没有自动加载完整依赖包

解决方式

手动增加lang包的依赖,在pom文件里面增加:

<dependency>

      <groupId>org.apache.commons</groupId>

      <artifactId>commons-lang3</artifactId>

      <version>3.5</version>

</dependency>

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,出现"java.lang.IllegalArgumentException: Illegal base64 character"异常是因为在Base64编码中出现了非法字符。这个异常通常发生在使用Java 8的java.util.Base64类进行Base64解码时。 在Java 8之前的版本中,Base64编码使用的是RFC 2045规范,它只允许使用A-Z、a-z、0-9、+和/这些字符。但是在Java 8中,Base64编码使用的是RFC 4648规范,它允许使用A-9、+、/以及=这些字符。 所以,当使用Java 8的java.util.Base64类进行Base64解码时,如果出现了非法字符,就会抛出"java.lang.IllegalArgumentException: Illegal base64 character"异常。 为了解决这个问题,你可以在解码之前先对Base64字符串进行处理,将非法字符替换为合法字符。例如,你可以使用正则表达式将非法字符替换为'=',然后再进行解码。 以下是一个示例代码,演示了如何处理"java.lang.IllegalArgumentException: Illegal base64 character"异常: ```java import java.util.Base64; public class Base64Example { public static void main(String[] args) { String base64String = "SGVsbG8gV29ybGQh"; // 包含非法字符的Base64字符串 // 将非法字符替换为'=' base64String = base64String.replaceAll("[^A-Za-z0-9+/=]", "="); // 解码Base64字符串 byte[] decodedBytes = Base64.getDecoder().decode(base64String); String decodedString = new String(decodedBytes); System.out.println(decodedString); } } ``` 这段代码首先将非法字符替换为'=',然后使用Base64.getDecoder().decode()方法解码Base64字符串,并将解码后的字节数组转换为字符串进行输出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值