3

升级到 XP 和 Java 1.6 后,我们的一个 Intranet 应用程序在浏览器中运行 java 小程序时遇到问题。java applet 是一个文档编辑器,它接受一个参数来指示文档所在的位置。我假设它将这个文件复制到用户机器上进行编辑。我希望我知道更多,但我没有来源……大坝!

我们在运行 XP-IE6-Java 1.6 的机器上得到了 java.io.IOException。这个问题不会在我们较旧的 Win2K-IE6-Java 1.3 上发生,所以我们确定它与桌面隔离,而不是服务器(无论如何,99% 肯定)。

一点信息:如果您尝试连续运行两次小程序,它会在第二次运行。第一次失败了。此外,在橙色 java 加载徽标嵌入浏览器之前出现错误消息框。

我还在策略文件中输入了以下信息,并通过控制台重新加载了策略文件。

grant codeBase "http://intranetserver/*" {
    permission java.security.AllPermission; 
};

这是堆栈跟踪的转储。谢谢你的时间 :-)

java.io.IOException:写入错误
    在 java.io.FileOutputStream.writeBytes(本机方法)
    在 java.io.FileOutputStream.write(未知来源)
    在 sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(未知来源)
    在 sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(未知来源)
    在 sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(未知来源)
    在 sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(未知来源)
    在 com.docscience.dlstools.browser.editor.HTMLDocumentLoader.loadDocument(HTMLDocumentLoader.java:94)
    在 com.docscience.dlstools.browser.editor.HTMLDocumentLoader.loadDocument(HTMLDocumentLoader.java:113)
    在 com.docscience.dlstools.browser.editor.HTMLDocumentLoader.loadDocument(HTMLDocumentLoader.java:126)
    在 com.docscience.dlstools.browser.editor.dsBrowserEditor.loadPage(dsBrowserEditor.java:1623)
    在 com.docscience.dlstools.browser.editor.dsBrowserEditor.loadFile(dsBrowserEditor.java:1873)
    在 com.docscience.dlstools.browser.editor.dsBrowserEditor.(dsBrowserEditor.java:201)
    在 com.docscience.dlstools.browser.editor.DLSBrowserEditor.init(DLSBrowserEditor.java:38)
    在 sun.applet.AppletPanel.run(未知来源)
    在 java.lang.Thread.run(未知来源)
4

4 回答 4

1

我解决了这个问题。在 java 控制面板中关闭临时文件。

于 2008-12-15T22:00:33.487 回答
0

你说你从 Java v1.3 直接到 Java 1.6,你有没有机会用 Java 1.4 或 1.5 测试它?在这里,更多的上下文信息会有所帮助。

于 2008-12-12T03:23:38.247 回答
0

您的代码是否已签名,或者您是否依赖策略文件中的设置?

我记得签名代码也有类似的问题。我不记得确切的情况,但事实证明,Java 控制台(高级选项卡,安全部分)中的撤销检查(或者可能是 OCSP)设置在启用时第一次启动小程序时导致了一些问题。SUN 声明默认情况下它们都被禁用,因此除非您明确启用该设置,否则您不会遇到该问题。

您可能会查看并禁用两者,也许它可以解决问题,尽管可能不需要禁用撤销检查。

于 2008-12-12T09:17:44.833 回答
0

如果您反编译并查看 HttpURLConnection 的源代码,您会看到写入 HTTP 缓存时发生异常。请参阅此处的文档:http: //java.sun.com/javase/6/docs/technotes/guides/net/http-cache.html

您可能必须使用调试器来查看那里究竟发生了什么以及原因是什么。

于 2008-12-15T12:19:55.297 回答