Апплет работает при запуске от Eclipse, не очень хорошо в браузере
Вопрос
У меня проблема, связанная с апплетом Java, и я был бы признателен за вашу помощь. Вот эта история: я попытался создать апплет, что бы попытаться подключиться к Digg.com и используя его API, показать 100 самых популярных историй (также включают некоторые варианты для сортировки и фильтрации результатов).
Во всяком случае, апплет открывается и показывает GUI просто отлично в браузере, но когда я нажимаю кнопку, которая загружает новости, она не загрузит их, но новости загружаются, когда я запускаю апплет в Eclipse.
Я подумал, что, возможно, проблема связана с созданием баночки Runnable из Eclipse, поскольку у меня есть некоторые ссылочные библиотеки (Google Gson для обработки JSON из Digg.com). Вот настройки, которые я использовал для создания Runnable JAR (я также пробовал », необходимые библиотеки на сгенерированную банку):
http://img816.imageshack.us/img816/417/exportjar.png.
Вот изображение апплета (побежал от Eclipse), когда новости были загружены:http://img841.imageshack.us/img841/9121/iMg841/9121/applet.png.png.
Я был бы признателен за любые идеи о том, как загрузка новостей работать в веб-браузере.
Решение
Что происходит, когда вы пытаетесь открыть соединение с Digg? Есть ли исключение безопасности? Я не буду удивлен, чтобы узнать, что JVM внутри браузера реализовал та же политика происхождения. Отказ Если это так, должно быть какое-то исключение (SecurityException, который я думаю), поднятый, когда вы пытаетесь подключиться к Digg.com.
Быстрый поиск «та же политика происхождения Java» нашел следующую статью, которая, похоже, подтверждает, что это может быть ваша проблема.http://www.zdnet.com/blog/security/defeating-the-same-origin-policy-part-1/946.
Другие советы
Я думаю, что Тора прав. Апплеты должны быть в состоянии подключиться только к собственному серверу. Вы можете попробовать запрашивать браузер, отправив запрос обратно на свой сервер, прося его извлечь данные и вернуть его на апплет.