升级到XP和Java 1.6后,我们的一个内部网应用程序在浏览器中运行java applet时遇到问题。 java applet是一个文档编辑器,接受文档所在位置的参数。我假设它将此文件复制到用户计算机进行编辑。我希望我知道更多,但我没有源......坝!
我们在运行XP-IE6-Java 1.6的机器上获得了java.io.IOException。在我们的旧版Win2K-IE6-Java 1.3上不会发生这个问题,因此我们确定它与桌面隔离,而不是服务器(99%肯定无论如何)。
一点信息:如果你尝试连续两次运行applet,它会第二次运行。第一次失败。此外,在浏览器中嵌入橙色java加载徽标之前,将显示错误消息框。
我还在策略文件中输入了以下信息,并通过控制台重新加载了策略文件。
grant codeBase "http://intranetserver/*" {
permission java.security.AllPermission;
};
这是堆栈跟踪的转储。谢谢你的时间: - )
java.io.IOException: Write error at java.io.FileOutputStream.writeBytes(Native Method) at java.io.FileOutputStream.write(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.read(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection$HttpInputStream.close(Unknown Source) at com.docscience.dlstools.browser.editor.HTMLDocumentLoader.loadDocument(HTMLDocumentLoader.java:94) at com.docscience.dlstools.browser.editor.HTMLDocumentLoader.loadDocument(HTMLDocumentLoader.java:113) at com.docscience.dlstools.browser.editor.HTMLDocumentLoader.loadDocument(HTMLDocumentLoader.java:126) at com.docscience.dlstools.browser.editor.dsBrowserEditor.loadPage(dsBrowserEditor.java:1623) at com.docscience.dlstools.browser.editor.dsBrowserEditor.loadFile(dsBrowserEditor.java:1873) at com.docscience.dlstools.browser.editor.dsBrowserEditor.(dsBrowserEditor.java:201) at com.docscience.dlstools.browser.editor.DLSBrowserEditor.init(DLSBrowserEditor.java:38) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
答案 0 :(得分:1)
我解决了这个问题。关闭java控制面板中的临时文件。
答案 1 :(得分:0)
你说你从Java v1.3直接转到Java 1.6,你有没有机会用Java 1.4或1.5测试它?更多上下文信息在这里会有所帮助。
答案 2 :(得分:0)
您的代码是否已签名,或者您是否依赖于策略文件中的设置?
我记得签名代码遇到了类似的问题。我记不起确切的情况,但事实证明,Java控制台中的revocation check (or maybe OCSP) setting(Tab Advanced,Section Security)在启用时在第一个applet启动时引起了一些问题。 SUN声明默认情况下它们都被禁用,因此除非您明确启用该设置,否则不会遇到该问题。
你可能看看并禁用它们,也许它可以解决问题,虽然可能不需要禁用撤销检查。
答案 3 :(得分:0)
如果您反编译并查看HttpURLConnection的源代码,您将看到写入HTTP缓存时发生异常。请参阅此处的文档: http://java.sun.com/javase/6/docs/technotes/guides/net/http-cache.html
您可能必须使用调试器来查看其中究竟发生了什么以及原因是什么。