我有一个与Java applet相关的问题,我将非常感谢您的帮助。这是故事:
我尝试创建一个小程序,尝试连接到digg.com,并使用它的API,显示100个最受欢迎的故事(还包括一些选项来排序和过滤结果)。
无论如何,applet打开并在浏览器中显示GUI很好,但是当我按下加载新闻的按钮时,它不会加载它们,但是当我在Eclipse中运行applet时加载新闻。
我想,也许问题与从eclipse创建可运行的jar有关,因为我有一些引用的库(谷歌GSON用于处理来自digg.com的JSON)。以下是我用于创建runnable jar的设置(我还试过“将所需的包打包到生成的JAR中):”
http://img816.imageshack.us/img816/417/exportjar.png
这是applet的图片(从eclipse运行),当新闻被加载时: http://img841.imageshack.us/img841/9121/applet.png
我很感激有关如何在网络浏览器中加载新闻的任何想法。
答案 0 :(得分:1)
我认为torah是对的。小程序应该只能连接到自己的服务器。您可以尝试欺骗浏览器,将请求发送回服务器,要求它检索数据并将其返回到applet。
答案 1 :(得分:0)
当您尝试打开与digg的连接时会发生什么?有安全例外吗?得知浏览器中的JVM正在实现same origin policy,我不会感到惊讶。如果是这种情况,当您尝试连接到digg.com时,应该会出现某种异常(我认为是SecurityException)。
快速搜索“同源策略java”,发现以下文章似乎都证实这可能是你的问题。 http://www.zdnet.com/blog/security/defeating-the-same-origin-policy-part-1/946