Java ,jacob 与 GAC

来源:互联网 发布:柳州广电网络营业厅 编辑:程序博客网 时间:2024/05/22 01:34

Java 调用C#的COM组件问题与解决:

Jacob  是jave 调用COM组件的java 程序,使用简单,也有效。但是在使用时遇到了又是序列化的问题。当我的C#程序集中有反序列化语句时,就出现找不到反序列化类型的异常。将反序列化类型的程序集放到哪里都不行,而在NET中时没有一点问题的。             最后把反序列化函数直接放在类型里还是不行,注册为cOM 也不行。后面用微软NET自身类型序列化、反序列,在用java ,jacob 调用,没有问题。那没,自然想到net 的类型与我的类型有什么区别,可能是方的位置不同,想起来了,net 的程序集是放在gac 中,即全局程序集缓存,试一下,将我的程序集也放进去,查一下,是用gacutil 工具,一试不行,要放在GAC中,必须是强名称的程序集。再查,程序集如何变成强名称,数字签名,什么密匙。终于放进gac 中,在用java调用,好, 通过。但是不要高兴的太早,程序集是找到了,但是类型又不符了,因为程序集又弱名称变为强名称,类型就发生了改变,原来的序列化数据的类型就不是现在强名称的类型了。于是又将数据用弱名称类型反序列化再用强名称类型序列化,这样版本之更换也是费了不少的周折,这个问题留待下次记录。还有强名称程序集不能引用弱名称程序集的问题(见另一篇:接口妙用)更换了数据,最后终于调用成功。

原创粉丝点击