编辑: -尝试格式化问题并在我的博客中以更明显的方式接受答案
这是原始问题.
我收到此错误:
详细消息sun.security.validator.ValidatorException:PKIX路径构建失败:
sun.security.provider.certpath.SunCertPathBuilderException:无法找到请求目标的有效证书路径导致javax.net.ssl.SSLHandshakeException:sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径
我使用Tomcat 6作为网络服务器.我有两个HTTPS Web应用程序安装在不同端口上但位于同一台机器上的不同Tomcats上.说App1(port 8443)
和
App2(port 443)
.App1
连接到App2
.当App1
所连接到App2
我得到上述错误.我知道这是一个非常常见的错误,所以在不同的论坛和网站上遇到了很多解决方案.我有server.xml
两个Tomcats 的以下条目:
keystoreFile="c:/.keystore"
keystorePass="changeit"
Run Code Online (Sandbox Code Playgroud)
每个站点都说同样的原因,即app2提供的证书不在app1 jvm的可信存储中.当我试图在IE浏览器中访问相同的URL时,这似乎也是正确的,它可以工作(加热,这个网站的安全证书存在问题.在这里我说继续这个网站).但是当Java客户端(在我的情况下)遇到相同的URL时,我得到上述错误.所以把它放在信任库中我试过这三个选项:
选项1
System.setProperty("javax.net.ssl.trustStore", "C:/.keystore");
System.setProperty("javax.net.ssl.trustStorePassword", "changeit");
Run Code Online (Sandbox Code Playgroud)
Option2 在环境变量中设置如下
CATALINA_OPTS -- param name
-Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value
Run Code Online (Sandbox Code Playgroud)
选项3 在环境变量中设置如下
JAVA_OPTS -- param name
-Djavax.net.ssl.trustStore=C:\.keystore -Djavax.net.ssl.trustStorePassword=changeit ---param value
Run Code Online (Sandbox Code Playgroud)
但没有任何效果.
最后工作的 是执行如何使用Apache HttpClient处理无效SSL证书中建议的Java方法?由Pascal Thivent执行,即执行程序InstallCert.
但这种方法适用于devbox设置,但我无法在生产环境中使用它.
我很奇怪,为什么上面提到的三种方法时,我已经中提到的相同值没有工作server.xml
的app2
服务器和相同的价值观信任设置
System.setProperty("javax.net.ssl.trustStore", "C:/.keystore") and System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); …
我是CS的第一年学生,我兼职为我爸爸的小生意做准备.我没有任何实际应用程序开发经验.我用Python编写脚本,用C编写一些课程,但没有这样的.
我父亲有一个小型培训业务,目前所有课程都通过外部网络应用程序进行安排,记录和跟进.有一个导出/"报告"功能,但它非常通用,我们需要特定的报告.我们无权访问实际数据库来运行查询.我被要求建立一个自定义报告系统.
我的想法是创建通用CSV导出并导入(可能使用Python)它们每晚都在办公室中托管的MySQL数据库中,从那里我可以运行所需的特定查询.我没有数据库方面的经验,但了解非常基础知识.我已经阅读了一些关于数据库创建和普通表单的内容.
我们可能很快就会开始拥有国际客户,因此我希望数据库在发生这种情况时不会爆炸.我们目前还有几家大公司作为客户,有不同的部门(例如ACME母公司,ACME医疗保健部门,ACME身体护理部门)
我提出的架构如下:
我在一张纸上"设计"(更像是潦草书写)模式,试图将其标准化为第三种形式.然后我把电源插头插上到MySQL Workbench和它使人们都非常适合我:
(点击查看全尺寸图片)
替代文字http://maian.org/img/schema.png
谢谢你的时间
mysql database schema database-design database-normalization
我希望这有资格作为一个编程问题,就像在任何编程教程中一样,你最终会在代码示例中遇到'foo'.(是的,对吧?)
'foo'到底意味着什么?
如果它意味着什么都没有,它何时开始被使用呢?
如何取消Chrome中的Chrome开发者工具?按下左下角只是将其移动到右侧.
是否可以在TextView中设置文本范围的颜色?
我想做一些类似于Twitter应用程序的东西,其中一部分文本是蓝色的.见下图:
这里的二叉树可能不一定是二进制搜索树.
结构可以视为 -
struct node {
int data;
struct node *left;
struct node *right;
};
Run Code Online (Sandbox Code Playgroud)
我可以和朋友一起解决的最大解决方案就是这种 -
考虑这个二叉树:
二叉树http://lcm.csa.iisc.ernet.in/dsa/img151.gif
顺序遍历产量 - 8,4,9,2,5,1,6,3,7
后序遍历产量 - 8,9,4,5,2,6,7,3,1
因此,例如,如果我们想要找到节点8和5的共同祖先,那么我们在顺序树遍历中创建8到5之间的所有节点的列表,在这种情况下恰好是[4,9] ,2].然后我们检查此列表中的哪个节点在后序遍历中最后出现,即2.因此,8和5的共同祖先是2.
这个算法的复杂性,我相信是O(n)(O(n)对于顺序/后序遍历,其余的步骤再次是O(n),因为它们只不过是数组中的简单迭代).但这很有可能是错误的.:-)
但这是一个非常粗略的方法,我不确定它是否会因某些情况而崩溃.这个问题还有其他(可能是更优的)解决方案吗?
algorithm complexity-theory binary-tree least-common-ancestor
我正在使用jnca库来收集路由器发送的NetFlow记录.路由器发送的NetFlow记录版本为9.
当从Wireshark观察NetFlow分组时,具有模板id 263的流集包含关于发起者八位字节和响应者八位字节的数据,其可用于确定与流相关联的字节数.
但问题是jcna无法获得这些值.对于八位字节,它始终显示为零.
currOffset = t.getTypeOffset(FieldDefinition.InBYTES_32);
currLen = t.getTypeLen(FieldDefinition.InBYTES_32);
if (currOffset >= 0 && currLen > 0) {
dOctets = Util.to_number(buf, off + currOffset, currLen) * t.getSamplingRate();
}
Run Code Online (Sandbox Code Playgroud)
这是用于获取dOctets的代码段.即使对于模板ID 263,这也返回零.
但是当它根据NetFlow模板ID 263计算时,它会提供正确的数据.(给出启动器八位字节并获得响应者八位字节46应该用50替换,因为特定记录的长度是4字节)
dOctets = Util.to_number(buf, off + 46, 4)
Run Code Online (Sandbox Code Playgroud)
46是Initiator Octets记录位于特定NetFlow数据包的地方.(使用Wireshark记录.)
这是jnca的问题吗?希望有些熟悉jcna的人能给我一些帮助.
我在看马里奥人工智能大赛中的人一直在做什么,其中一些人利用A*(A-Star)路径算法构建了一些漂亮的马里奥机器人.
替代文字http://julian.togelius.com/mariocompetition2009/screen1.png
(马里奥·博特在行动视频)
我的问题是,A-Star与Dijkstra相比如何?看着它们,它们看起来很相似.
为什么有人会使用一个而不是另一个?特别是在游戏路径的背景下?
在我的主线程中,我有一个while(listening)
调用accept()
我的ServerSocket对象的循环,然后启动一个新的客户端线程,并在接受新客户端时将其添加到Collection.
我还有一个Admin线程,我想用它来发出命令,比如'exit',这将导致所有客户端线程被关闭,自行关闭,并通过转向监听来关闭主线程.
但是,accept()
在while(listening)
循环块中调用,并且似乎没有任何方法可以中断它,因此无法再次检查while条件并且程序无法退出!
有一个更好的方法吗?或者某种方式来中断阻塞方法?
java ×3
algorithm ×2
a-star ×1
android ×1
binary-tree ×1
blocking ×1
c# ×1
cisco ×1
coding-style ×1
database ×1
dijkstra ×1
formatting ×1
graph ×1
https ×1
interrupt ×1
mysql ×1
netflow ×1
networking ×1
schema ×1
ssl ×1
text ×1
textview ×1
vb.net ×1
xml-comments ×1