我正在尝试创建一个在最长时间内执行给定任务的方法.如果在那段时间内未能完成,应该在放弃之前重试多次.它也应该在每次尝试之间等待几秒钟.这就是我想出来的,我想对我的方法提出一些批评.他们使用这个ScheduledExecutorService
或者我这样做的方式更简单吗?
public static <T> T execute(Callable<T> task, int tries, int waitTimeSeconds, int timeout)
throws InterruptedException, TimeoutException, Exception {
Exception lastThrown = null;
for (int i = 0; i < tries; i++) {
try {
final Future<T> future = new FutureTask<T>(task);
return future.get(timeout, TimeUnit.SECONDS);
} catch (TimeoutException ex) {
lastThrown = ex;
} catch (ExecutionException ex) {
lastThrown = (Exception) ex.getCause();
}
Thread.sleep(TimeUnit.SECONDS.toMillis(waitTimeSeconds));
}
if (lastThrown == null) {
lastThrown = new TimeoutException("Reached max tries without being caused by …
Run Code Online (Sandbox Code Playgroud) 大家好我正在尝试将我在java程序中生成的PKCS#8私钥转换为PEM编码文件.
Security.addProvider(new BouncyCastleProvider());
SecureRandom rand = new SecureRandom();
JDKKeyPairGenerator.RSA keyPairGen = new JDKKeyPairGenerator.RSA();
keyPairGen.initialize(2048, rand);
KeyPair keyPair = keyPairGen.generateKeyPair();
PEMWriter privatepemWriter = new PEMWriter(new FileWriter(new File(dir + "private.key")));
privatepemWriter.writeObject(keyPair.getPrivate());
Run Code Online (Sandbox Code Playgroud)
运行程序后,我有两种格式的私钥和一个公钥(代码没有显示,因为它的工作原理).然后我使用这个openssl命令将private.key转换回pem格式化文件.
openssl pkcs8 -nocrypt -inform DER -in private.key -out private2.pem
Run Code Online (Sandbox Code Playgroud)
当我比较private.pem和private2.pem它们是不同的,显然当我尝试使用private.pem时,它说它不是一个有效的文件.
为了将此私钥正确转换为我需要的PEM格式,我缺少哪一步?我不能在我的程序中使用OpenSSL,否则我只是添加该函数调用.我可以在这个程序中访问BouncyCastle库,所以也许它有一个我忽略的解决方案.
我很近,但我不能像我想要的那样工作.我试图让标题和菜单始终可见,让内容占据视图屏幕的其余部分,并在溢出时拥有自己的滚动条.问题是内容的宽度没有向右拉伸,我的页面中间有一个滚动条.如果我将高度设置为100%它想要使用整个窗口高度而不是剩下的高度,我也无法让它占据剩余的窗口高度.
我只使用IE7或更好,所以需要担心javascript,如果它可以解决这个问题我不反对使用jQuery!