我坚持创建一个SSLContext(我想用它来实例化一个SSLEngine来处理通过java-nio的加密传输):
代码
String protocol = "TLSv1.2";
Provider provider = new BouncyCastleProvider();
Security.addProvider(provider);
sslContext = SSLContext.getInstance(protocol,provider.getName());
Run Code Online (Sandbox Code Playgroud)
抛出以下异常:
Exception in thread "main" java.lang.RuntimeException: java.security.NoSuchAlgorithmException: no such algorithm: SSL for provider BC
at org.bitmash.network.tcp.ssl.SslTransferFactory.<init>(SslTransferFactory.java:43)
at org.bitmash.network.http.HttpsServer.<init>(HttpsServer.java:19)
Run Code Online (Sandbox Code Playgroud)
我将Bouncy Castle的当前提供程序包'bcprov-jdk15on-150.jar'(我从这里获得)附加到应用程序类路径以及它的bootclasspath(通过VM-Option -Xbootclasspath/p),但都没有解决问题.我也尝试了不同的值protocol(即'SSL'和'TLSv1')而没有任何影响.
此外,我发现这里和这里有类似问题的人.但与他们相比,我的目标(我正在使用)Java 7(或更高版本),但我仍然有这个问题.是这样 - 一般 - 甚至可以这样使用Bouncy Castle,或者我是否必须使用各自的API而不是oracle的NIO通过SSLEngine重写我的协议(这是我现在正在做的方式)?
非常感谢你们的帮助.
我正在尝试按照此处提出的解决方案使用 java 读取 PNG 文件的元数据。
但是该方法ImageIO.getImageReaders(inputStream)返回一个空的读者列表。我通过读取流ImageIO.read并将结果图像渲染到屏幕上来确保流是正确的。
这就是我感到困惑的原因:由于ImageIO.read返回了一个有效的图像,我假设有人ImageReader声称能够解释这个流。解释图像数据和图像元数据之间有区别吗?
这个问题的任何提示甚至解决方案?
非常感谢。