【问题现象】
Apusic启动正常,但是访问web控制台时提示如下错误:
2011-03-17 20:14:32 错误 [apusic.web.default./] 执行Servlet时发生错误。
java.security.ProviderException: nextBytes() failed
at sun.security.provider.NativePRNG$RandomIO.implNextBytes(NativePRNG.java:287)
at sun.security.provider.NativePRNG$RandomIO.access$200(NativePRNG.java:125)
at sun.security.provider.NativePRNG.engineNextBytes(NativePRNG.java:114)
at java.security.SecureRandom.nextBytes(SecureRandom.java:450)
at java.util.UUID.randomUUID(UUID.java:178)
at com.apusic.web.jsp.parser.TreeMaker.assignId(Unknown Source)
at com.apusic.web.jsp.parser.TreeMaker.processTag(Unknown Source)
at com.apusic.web.jsp.parser.JspPageParser.parseTag(Unknown Source)
at com.apusic.web.jsp.parser.JspPageParser.parse(Unknown Source)
at com.apusic.web.jsp.parser.JspPageParser.parse(Unknown Source)
at com.apusic.web.jsp.parser.JspParser.parse(Unknown Source)
at com.apusic.web.jsp.generator.JspCompilationContext.compile(Unknown Source)
at com.apusic.web.jsp.JspServlet$Page.load(Unknown Source)
at com.apusic.web.jsp.JspServlet.service(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at com.apusic.web.container.ServletComponent.service(Unknown Source)
at com.apusic.web.container.WebContainer.invoke(Unknown Source)
at com.apusic.web.container.RequestDispatcherImpl.forward(Unknown Source)
at com.apusic.web.servlet.FileServlet.getResource(Unknown Source)
at com.apusic.web.servlet.FileServlet.doGet(Unknown Source)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
at com.apusic.web.container.ServletComponent.service(Unknown Source)
at com.apusic.web.container.WebContainer.invoke(Unknown Source)
at com.apusic.web.container.WebContainer.processRequest(Unknown Source)
at com.apusic.web.http.VirtualHost.processRequest(Unknown Source)
at com.apusic.web.http.HttpServer.processRequest(Unknown Source)
at com.apusic.web.http.HttpConnectionHandler.service(Unknown Source)
at com.apusic.web.http.ConnectionHandler.processRequest(Unknown Source)
at com.apusic.web.http.ConnectionHandler.processConnection(Unknown Source)
at com.apusic.web.http.ConnectionHandler.run(Unknown Source)
at com.apusic.util.ThreadPoolImpl$WorkerThread.run(Unknown Source)
Caused by: java.io.EOFException: /dev/[u]random closed?
at sun.security.provider.NativePRNG$RandomIO.readFully(NativePRNG.java:204)
at sun.security.provider.NativePRNG$RandomIO.ensureBufferValid(NativePRNG.java:264)
at sun.security.provider.NativePRNG$RandomIO.implNextBytes(NativePRNG.java:278)
... 31 more
【问题分析】
经查阅相关资料并从sun的官网上获取相关信息得知,这可能是sun的一个bug。
【问题解决】
基于目前的情况,解决方式如下,在JVM的启动参数中指定使用的随机数设备,如下:
-Djava.security.egd=file:/dev/./urandom
注意:此处的文件路经中有个dot,而不是/dev/urandom这个格式。
PS:从JDK的源码看,提供的随机数设备的路径分别是:/dev/random和/dev/urandom,但是有时os
也会因为连接错误导致读取随机数设备失败,可以尝试重新删除随机数设备的连接再重新绑定一次,如下:
rm -rf *random
ln -s random
ln -s urandom
分享到:
相关推荐
最新国密随机数检查工具 GM/T 0005 2021标准 随机数检查工具,检查随机数质量是否合格 支持win10 64位系统
国密随机数检测工具GM/T 0005-2021 最新标准 支持win10系统 输出详细的国密检测结果,支持二级均匀性检测
睡觉/机率20%/对应随机数1~2/前进距离0 大跳/机率20%/对应随机数3~4/前进距离9 大退/机率10%/对应随机数5/前进距离-12 小跳/机率30%/对应随机数6~8/前进距离1 小退/机率20%/对应随机数9~10/前进距离-2 其中龟...
/// 随机数最小值</param> /// 是否包含最小值</param> /// 随机数最大值</param> /// 是否包含最大值</param> /// 随机结果数量</param> /// 结果是否重复</param>
随机数随机数随机数随机数随机数随机数随机数随机数
本文实例展示了C#实现生成设置范围内的Double类型随机数的方法,对于C#的学习来说有不错的借鉴价值,分享给大家供大家参考。 关键代码如下: /// /// 生成设置范围内的Double的随机数 /// eg:_random.NextDouble...
Python random 生成随机数的几个常用 函数
国密标准 《GM/T 0105-2021 软件随机数发生器设计指南》 正式版
Linux随机数生成器的原理及缺陷
此文档以一个小的实例讲解了java随机数random的使用,在java当中随机数的使用率较高,所以需要熟练掌握随机数的使用
//产生随机数的类 final SuiJiShuClass sjs=new SuiJiShuClass(); final JPanel panel=new JPanel(); //初始化一个JPanel panel.setBorder(BorderFactory.createTitledBorder("QQ:330936274")); //设置边界 ...
解决了C# Random生成随机数重复问题,并生成随机数的 介绍了五种方法。 没有分的童鞋,可以参考博文,博文里有源码: http://blog.csdn.net/shuai_wy/article/details/78606175
/dev/random存储着系统当前运行环境的实时数据,是阻塞的随机数发生器,读取有时需要等待,尽量避免使用。 /dev/urandom非阻塞随机数发生器,读取操作不会产生阻塞。 > cat /dev/urandom | head -n 10 | cksum | ...
华农 linux 课程设计 随机数 老邝的作业
文章主要介绍shell脚本如何获取随机数random的方法,感兴趣的朋友可以看看。
declare @i int 定义一个变量 再利用rarnd()函数进行读取
linux获取真正随机数源码
自定义随机数,再添加数据是往往想要自己定义一个id好而且还让她没有规律那么这时候就需要随机数了这个例子包括了所有Random 的例子!
/** * 游戏主界面 */ public class NormalGame extends Canvas implements Runnable{ private Image image; //背景图片 ... Random random = new Random(); //随机数对象 //游戏中的方向:上、下、左、右
就是Random类的简单随机数产生···就是这样,给需要的人!