java错误1500_JAVA错误汇总

2023-11-07

1.Slf4J-API版本兼容

问题描述

Exception in thread "main" java.lang.NoSuchMethodError: org.slf4j.helpers.MessageFormatter.arrayFormat(Ljava/lang/String;[Ljava/lang/Object;)Lorg/slf4j/helpers/FormattingTuple;

最后发现是slf4j的版本不对, 他使用的是slf4j-api-2.0.99.jar

但是,但是,官方正式版只有1.6.1,而且至今我都没发现有2.0.x系列的计划呢!! 我的神啊,哪里来的版本? 经提醒,这个jar就在 1.6.1版的发行包中!! slf4j-1.6.1.zipslf4j-1.6.1integrationlib

神奇啊,为啥呢?? 找不到其源码jar,好吧,上JD-GUI,看看报错的类MessageFormatter.arrayFormat 2.0.99版的方法声明:

public static final String arrayFormat(String messagePattern, Object[] argArray)

1.6.1版的方法声明:

public static final FormattingTuple arrayFormat(String messagePattern, Object[] argArray)

看到区别了吧,返回值的类型不同了!同样的,还有一个1.6.99版的API,内容与2.0.99版一致

- fixed bug 154

It is expected that all SLF4J releases in the 1.6.x and 2.0.x series will be mutually compatible. Note that the 2.0.x series is expected to require JDK 1.5 or later. `

兼容旧版本?? 明显就是不兼容嘛! 但 bug 154 到底是什么内容呢?

几经查找,终于找到其issue系统的地址,是个bugzilla呢 -- 天啊,官网一个网站,下载一个网站,源码管理一个网站,issue管理又是再一个网站?!!

解决方案

将slf4j升级到1.6.5以上。

2.解决PKIX:unable to find valid certification path to requested target 的问题

这两天在twitter服务器上忽然遇到这样的异常:

e: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

经过检查确认,完整的异常信息应该如下:

javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target

但是都没说明具体的解决方法,郁闷啊!!

但是悲催的是那个Java类已经无法下载了。。。。历经N次的google,终于找到该文件了,不敢独享,记录于此。

问题的根本是:

缺少安全证书时出现的异常。

解决问题方法:

将你要访问的webservice/url....的安全认证证书导入到客户端即可。

以下是获取安全证书的一种方法,通过以下程序获取安全证书(记得根据需求修改部分代码):

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

packagecom.company;import javax.net.ssl.*;import java.io.*;importjava.security.KeyStore;importjava.security.MessageDigest;importjava.security.cert.CertificateException;importjava.security.cert.X509Certificate;public classInstallCert {private final static String PRODUCTION_HOST = "gateway.push.apple.com";private final static int PRODUCTION_PORT = 2195;private final static String DEVELOPMENT_HOST = "gateway.sandbox.push.apple.com";private final static int DEVELOPMENT_PORT = 2195;private static String CLIENT_KEY_STORE = "C:\myfile\certificates\pair1\push-pro1-123456.p12";public static void main(String[] args) throwsException {

String host;intport;

host=DEVELOPMENT_HOST;

port=DEVELOPMENT_PORT;

String passwd= "123456";

File file= newFile(CLIENT_KEY_STORE);

System.out.println("Loading KeyStore " + file + "...");

KeyStore ks=KeyStore.getInstance(KeyStore.getDefaultType());

ks.load(newFileInputStream(file), passwd.toCharArray());

SSLContext context= SSLContext.getInstance("TLS");

TrustManagerFactory tmf=TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());

tmf.init(ks);

X509TrustManager defaultTrustManager= (X509TrustManager) tmf.getTrustManagers()[0];

SavingTrustManager tm= newSavingTrustManager(defaultTrustManager);

context.init(null, new TrustManager[]{tm}, null);

SSLSocketFactory factory=context.getSocketFactory();

System.out.println("Opening connection to " + host + ":" + port + "...");

SSLSocket socket=(SSLSocket) factory.createSocket(host, port);

socket.setSoTimeout(10000);try{

System.out.println("Starting SSL handshake...");

socket.startHandshake();

socket.close();

System.out.println();

System.out.println("No errors, certificate is already trusted");

}catch(SSLException e) {

System.out.println();

e.printStackTrace(System.out);

}

X509Certificate[] chain=tm.chain;if (chain == null) {

System.out.println("Could not obtain server certificate chain");return;

}

BufferedReader reader= new BufferedReader(newInputStreamReader(System.in));

System.out.println("Server sent " + chain.length + " certificate(s):");

MessageDigest sha1= MessageDigest.getInstance("SHA1");

MessageDigest md5= MessageDigest.getInstance("MD5");for (int i = 0; i < chain.length; i++) {

X509Certificate cert=chain[i];

System.out.println(" " + (i + 1) + " Subject " +cert.getSubjectDN());

System.out.println(" Issuer " +cert.getIssuerDN());

sha1.update(cert.getEncoded());

System.out.println(" sha1 " +toHexString(sha1.digest()));

md5.update(cert.getEncoded());

System.out.println(" md5 " +toHexString(md5.digest()));

System.out.println();

}

System.out.println("Enter certificate to add to trusted keystore or 'q' to quit: [1]");

String line=reader.readLine().trim();intk;try{

k= (line.length() == 0) ? 0 : Integer.parseInt(line) - 1;

}catch(NumberFormatException e) {

System.out.println("KeyStore not changed");return;

}

X509Certificate cert=chain[k];

String alias= host + "-" + (k + 1);

ks.setCertificateEntry(alias, cert);

OutputStream out= new FileOutputStream("apnssandbox.p12");

ks.store(out, passwd.toCharArray());

out.close();

System.out.println();

System.out.println(cert);

System.out.println();

System.out

.println("Added certificate to keystore 'jssecacerts' using alias '"

+ alias + "'");

}private static final char[] HEXDIGITS = "0123456789abcdef".toCharArray();private static String toHexString(byte[] bytes) {

StringBuilder sb= new StringBuilder(bytes.length * 3);for (intb : bytes) {

b&= 0xff;

sb.append(HEXDIGITS[b>> 4]);

sb.append(HEXDIGITS[b& 15]);

sb.append(' ');

}returnsb.toString();

}private static class SavingTrustManager implementsX509TrustManager {private finalX509TrustManager tm;privateX509Certificate[] chain;

SavingTrustManager(X509TrustManager tm) {this.tm =tm;

}publicX509Certificate[] getAcceptedIssuers() {throw newUnsupportedOperationException();

}public voidcheckClientTrusted(X509Certificate[] chain, String authType)throwsCertificateException {throw newUnsupportedOperationException();

}public voidcheckServerTrusted(X509Certificate[] chain, String authType)throwsCertificateException {this.chain =chain;

tm.checkServerTrusted(chain, authType);

}

}

}

View Code

输入1,回车,然后会在当前的目录下产生一个名为“ssecacerts”的证书。

将证书拷贝到$JAVA_HOME/jre/lib/security目录下,或者通过以下方式:

System.setProperty("javax.net.ssl.trustStore", "你的jssecacerts证书路径");

3.

Maven在部署(deploy)的时候会报错:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project ams-httpdns: Deployment failed: repository element was not specified in the POM inside distributionManagement element or in -DaltDeploymentRepository=id::layout::url parameter -> [Help 1]

[ERROR]

[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

[ERROR] Re-run Maven using the -X switchto enable full debug logging.

[ERROR]

[ERROR] For more information about the errors and possible solutions, please read the following articles:

[ERROR] [Help1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

View Code

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java错误1500_JAVA错误汇总 的相关文章

  • 【低功耗蓝牙】① 蓝牙广播数据格式分析

    摘要 本文章主要讲解了蓝牙的发展史 蓝牙信号 蓝牙广播数据的格式 最后使用ESP32芯片MicroPython固件给出了蓝牙广播的具体代码 是蓝牙初学者很好的参考资料 也可以参考下我在B站的蓝牙视频教程 ESP32教程 第二章 低功耗蓝牙B
  • 创建多个线程、数据共享问题分析与案例代码

    创建多个线程 数据共享问题分析与案例代码 创建和等待多个线程 在实际的工作中 可能要创建的线程不止一个 也许有多个 所以 这里展示一下创建多个线程的一种写法 大家可以举一反三 在lesson4 cpp的上面位置 书写线程入口函数 mypri
  • Python框架区别是什么?比较常用的框架有哪些?

    前言 本文的文字及图片来源于网络 仅供学习 交流使用 不具有任何商业用途 版权归原作者所有 如有问题请及时联系我们以作处理 众所周知 Python开发框架大大减少了开发者不必要的重复劳动 提高了项目开发效率的同时 还使得创建的程序更加稳定
  • webpack原理

    1 webpack核心概念 entry 一个可执行模块或库的入口文件 chunk 多个文件组成的一个代码块 例如把一个可执行模块和它所有依赖的模块组合和一个 chunk 这体现了webpack的打包机制 loader 文件转换器 例如把es
  • 海康网络摄像机与电脑交互,有网络和无网络两种方式读取URL视频流,以及无网络情况下配置IP地址

    目录 1 准备工具 2 通过WiFi的接口连接 3 无网络情况下进行交互 4 海康官方软件 5 RTSP视频流 a RTSP b 视频流 c rtsp流地址 1 准备工具 电脑 台式或笔记本 网线 普通网线即可 POE海康网络摄像机 不需要
  • Nerf如何制作自己的llff数据集

    Nerf三维重建使用Pycharm运行自己的数据集 20230427更新 Nerf代码讲解 从零简单复现论文代码 Nerf环境配置教程 你好 这里是 出门吃三碗饭 本人 本文章接下来将介绍自己制作Nerf数据集 让你自己动手渲染第一个三维模
  • PyCharm 代码调试教程

    目录 一 图文教程 二 调试相关的快捷键 调试的过程分为三步 第一步 在你想要调试的地方 打上断点 第二步 使用调试模式来运行这个 python 程序 第三步 使用各种手段开始代码调试 一 图文教程 1 首先第一步和第二步 我用下面这张图表
  • Spring Cloud Config 实现配置中心,看这一篇就够了

    Spring Cloud Config 是 Spring Cloud 家族中最早的配置中心 虽然后来又发布了 Consul 可以代替配置中心功能 但是 Config 依然适用于 Spring Cloud 项目 通过简单的配置即可实现功能 配
  • ArcGIS:如何添加字段、属性表的连接、字段的计算?

    目录 01 加载原始数据 02 加载的数据分析与处理 2 1 查看tracts要素的属性表 2 2 为tracts要素的属性表添加 人口密度 字段 03 与tract pop属性表进行连接 3 1 为什么要连接 3 2 连接有什么需要注意的
  • vue 导出 导入

    vue 导出 方法一 1 util自带工具包 Export2Excel js 2 引用 import export json to excel from utils Export2Excel 3 导出方法 formatJson filter
  • 基于lua-nginx-module(openresty)的WEB应用防火墙

    独乐乐 不如众乐乐 分享给大家一篇WEB应用防火墙的文章 基于Lua Nginx实现 以下是ngx lua waf的作者全文输出 Github地址 https github com loveshell ngx lua waf ngx lua
  • MySQL 5.7 root登录问题

    For Mac 安装完成后 当使用 mysql u root p 登录时 出现下面错误 ERROR 1045 28000 Access denied for user root localhost using password NO 可通过
  • 正则替换下划线为字母大写

    本人需要手工将数据库中的字段批量转换为java对象的字段 比如 将TRADE DATE 转换为 tradeDate 最终的结果为 1 xxx xml 格式如下 result property tradeDate column TRADE D
  • calendar 字符串日期转时间戳

    public class TestDate public static void main String args SimpleDateFormat dateFormat new SimpleDateFormat yyyy MM dd 指定
  • github上传本地项目代码

    github上传本地项目代码 小白教程 github上申请一个账号 https github com 下载一个git工具 https gitforwindows org 进入github首页 点击新项目new repository 如下图所
  • Java中Comparable和Comparator区别小结

    阅读目录 一 Comparable简介 二 Comparator简介 三 Comparable和Comparator区别比较 回到顶部 一 Comparable简介 Comparable是排序接口 若一个类实现了Comparable接口 就
  • Codeforces Round 883 (Div. 3)

    A Rudolph and Cut the Rope 只需要按照钉子距离的高度a i 和绳子的长度b i 的差值进行排序即可 代码 int n pii a N bool cmp pii a pii b return a x a y
  • python爬虫总是爬不到数据,你需要解决反爬虫了

    爬虫最讨厌的就是反爬虫 但是如果没有反爬虫的存在的 那么大家都可以随随便便就进行网络爬虫 那么服务器又怎么支撑得起来呢 那么又怎么彰显我们的能力呢 所以说反爬虫是一个门槛 跨过这一个门槛就可以轻松掌握爬虫的技术了 跨不过那么你就一直都在起点
  • element-ui中el-input输入时自定义校验,并且调后端接口查重

    一 实现效果 1 只能属于正整数 2 只能属于7位或者9位 3 输入时实时校验 4 查重 不能输入列表存在的 除自己之外

随机推荐