Интеграция GWTAI-апплета в проблему GWT - PullRequest
0 голосов
/ 28 мая 2010

Я работаю с gwtai , чтобы интегрировать Java-апплет в мой проект gwt. Базовое взаимодействие между моим основным приложением и апплетом (например, вызов простых методов, возвращающих int или логические значения) работает.

Но главная причина, по которой мне нужно интегрировать этот апплет, заключается в том, что он нужен мне для подключения к другому серверу, получения ответа и передачи его в мое gwt-приложение.

Итак, в апплете есть один основной метод:

public String SendAndReceive(String host, int sendPort, int receivePort, String query)

, который подключается к серверу, получает ответ и возвращает этот ответ в виде строки.

Когда я сейчас пытаюсь вызвать этот метод следующим образом:

applet.SendAndReceive("0.0.0.0", 9099, 2000, "show streams;");

Я постоянно сталкиваюсь со следующей ошибкой (полное сообщение об ошибке в конце):

com.google.gwt.core.client.JavaScriptException: (String): Error calling method on NPObject! [plugin exception: java.security.AccessControlException: access denied (java.util.PropertyPermission * read,write)]

Я не смог найти решение (для gwtai это довольно необычная тема), что я обнаружил (и что исключение, допустим, одно), что есть проблема безопасности - возможно, потому что я подключаюсь к другому серверу , Я также читал кое-что о политике единого источника в браузере, что бы указывало в том же направлении ... до сих пор я никогда не работал с Java-апплетами.

Так что, если у кого-то есть решение или подсказка, я был бы очень благодарен. Если больше кода полезно, я могу дать.

Спасибо

Andy


полное сообщение об ошибке:

21: 03: 49.864 [ОШИБКА] [follovizergwt] Невозможно загрузить класс точки входа модуля follovizer.gwt.client.FolloVizerGWT (подробности см. В связанном исключении) com.google.gwt.core.client.JavaScriptException: (String): Ошибка вызова метода для NPObject! [исключение плагина: java.security.AccessControlException: доступ запрещен (java.util.PropertyPermission * чтение, запись)]. на com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript (BrowserChannelServer.java:195) на com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke (ModuleSpaceOOPHM.java:120) на com.google.gwt.dev.shell.ModuleSpace.invokeNative (ModuleSpace.java:507) на com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject (ModuleSpace.java:264) на com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject (JavaScriptHost.java:91) at follovizer.gwt.client.AnduINAppletImpl.SendAndReceive (AnduINAppletImpl.java) at follovizer.gwt.client.FolloVizerGWT.createLayout (FolloVizerGWT.java:92) at follovizer.gwt.client.FolloVizerGWT.onModuleLoad (FolloVizerGWT.java:40) at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) в java.lang.reflect.Method.invoke (Method.java:597) на com.google.gwt.dev.shell.ModuleSpace.onLoad (ModuleSpace.java:369) на com.google.gwt.dev.shell.OophmSessionHandler.loadModule (OophmSessionHandler.java:185) на com.google.gwt.dev.shell.BrowserChannelServer.processConnection (BrowserChannelServer.java:380) на com.google.gwt.dev.shell.BrowserChannelServer.run (BrowserChannelServer.java:222) at java.lang.Thread.run (Thread.java:619)

Ответы [ 2 ]

0 голосов
/ 07 июня 2010

Если ваш Java-апплет должен сделать междоменный запрос, его нужно будет подписать. По умолчанию песочница Java не позволяет апплетам получать страницы, находящиеся в домене, отличном от того, из которого был создан апплет.

0 голосов
/ 30 мая 2010

Как и другие плагины для браузера, Java-апплеты имеют ограничения безопасности . Примечательно, что они могут устанавливать сетевые соединения только с тем хостом, с которого пришли. Вы не можете использовать апплеты для подключения к произвольным серверам.

Общение с другими серверами является довольно распространенным требованием, и существует несколько способов его обойти. Распространенными решениями являются Flash + Crossdomain.xml и JSONP. Есть и другие решения, просто выполните поиск в Google всех возможных решений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...