我正在尝试让Lucene在未签名的applet中工作。我们的动机是,我们只能在客户端访问用户的纯文本数据,并且正在尝试为没有可信服务器的应用程序构建搜索和索引工具。我们的想法是使用javascript将文档推送到lucene applet中,编制索引,然后导出为不透明的blob,可以在客户端加密,然后推送到不受信任的服务器进行存储。对于搜索,索引将被下载,解密并加载到applet中。我们通常期待非常小的指数。
所以,问题是:似乎我没有实例化 IndexWriter 而没有发生神秘,坏事。从javascript端(Chrome)我得到一个“NPObject上的错误调用方法”。 从Java控制台我什么也得不到;没有明显的异常,没有堆栈跟踪,没有。
在实例化 IndexWriter 之前,我成功实例化 RAMDirectory , IndexWriterConfig 和 StandardAnalyzer ,没有问题。我的假设是,新的IndexWriter(...)上面的堆栈跟踪中的内容违反了applet安全策略。我发现一些旧的Lucene bugs报告了System.getProperty()的问题,但它们似乎在很久以前就被修补了。我正在构建截至2011年8月8日的最新代码。
有谁知道如何从JRE获得有关导致问题的更多详细信息? (或者,更好的是,是否有人知道哪些Lucene类(如果有的话)需要修补无符号执行?)我正在开发使用linux上的sun SDK。
PS:我也会对使用applet的Lucene的任何替代品感兴趣,因为我对这个解决方案并不感到疯狂。